2011-09-17 77 views
11

我希望能夠突出顯示要分別縮進/反向縮進和縮進的行。Vim - 使用標籤縮進多行

" for command mode reverse tab 
nmap <S-Tab> << 
" for insert mode reverse tab 
imap <S-Tab> <Esc><<i 
" for command mode multiple line reverse tab(doesn't work) 
nmap <Tab> i< 
" for insert mode multiple line reverse tab(doesn't work) 
imap <Tab> < 

" for command mode tab 
nmap <Tab> >> 
" for command mode multiple line tab(doesn't work) 
nmap <Tab> i> 
" for insert mode multiple line tab(doesn't work) 
imap <Tab> > 

在我願意使用vim作爲我的主編輯器之前,這是我需要的最後一件事。

+1

因此?究竟是什麼問題? –

回答

22

要選擇並突出顯示你的文字,你需要start using visual mode,(我通常打v做到這一點),並選擇使用標準motions(如^hĴ你的文字,ķl)。

要建立在你需要:vmapvisual mode使用映射...

:vmap <Tab> > 
:vmap <S-Tab> < 

但是,爲什麼你需要創建這個映射?

visual mode,<將向右移動選定的行並向右移動選擇的>

有時候最好學習Vim(甚至Vi)鍵,然後你可以使用任何安裝,而不只是使用你的.vimrc

舉例來說,你已經把:

imap <Tab> < 

這是一個壞主意。這會讓你更難插入一個製表字符到文本中(甚至CTRL +無法正常工作,我期望的),並且每次你標籤你會插入一個<

快樂編輯!

+0

如果我用鼠標突出顯示,我用我的右手。 < and >都在鍵盤的右側。由於我使用過的每個編輯都這樣做,所以它也沒有用過。 – deadghost

+1

@ user894091:*鼠標*?你有沒有嘗試過使用*鍵盤*?你會發現你可以更快地這樣做(通過一點練習)! – Johnsyweb

+0

您的推薦非常好。我會用鼠標和標籤範例來拋棄舊的高光。你仍然使用Tab鍵進行單行縮進,或者你是否已經關閉了>也是如此? – deadghost

5

在插入模式下可以使用控制 - d控制 - 移除/添加的縮進(分別地)。

因此,與

imap <Tab> <c-d> 

imap <Tab> > 

更換

imap <Tab> < 

imap <Tab> <c-t> 

在可視模式可以突出一個塊,然後打<>,但如果你想它是標籤轉變 - 標籤,你可以用vmap設置它像你有爲其他人完成。

+3

這仍然是一個壞主意。你如何插入製表符? – Johnsyweb

+1

@Johnsyweb①我想插入一個製表符至少兩個數量級以下,我想用它作爲命令。 ②當你做了什麼(或任何其他你想綁定的角色)時,你可以使用' + v '來插入一個文字標籤(或其他任何東西)。 – Caleb

1

把這個在你的.vimrc這是你想要

:map <Tab> > 
:imap <Tab> <Esc> > 
:vmap <Tab> >gv 
:map <S-Tab> < 
:imap <S-Tab> <Esc> < 
:vmap <S-Tab> <gv 

的vmaps後GV會有什麼讓您的亮點。地圖和imaps將允許您插入其他模式。這不像是textmate,但它到達那裏:)