2012-09-10 32 views
4

在Vim中,我想直觀地選擇一些行,然後粘貼一個註釋掉的選擇副本,位於原始選擇的上方或下方,具體取決於視覺選擇是向上還是向下創建的。所以如果我在第100行開始視覺模式並將光標向上移動10行,那將是一個向上的視覺選擇,而如果我從第100行開始並將光標向下移動10行,則它將是向下選擇。 line("'<")line("'>")在兩種情況下都是相同的,所以看起來Vim總是選擇較小的數字作爲選擇開始。有沒有辦法確定視覺選擇是向上還是向下?是否可以確定Vim中視覺選擇的方向?

回答

2

當(在映射/命令)首先退出視覺模式經由<Esc>,可以比較光標(line('.'))與'<'>馬克的位置/線。然後,只需使用標記(即使在可視模式下,它們也會保留其值),或者通過:normal! gv重新選擇。

0

你可以把一個標誌,你開始選擇之前,另一個當你離開的選擇:

ma 
V 
jjj 
<Esc> 
mb 

,然後如果line("'a") < line("'b")看到。

相關問題