2010-04-04 34 views
26

vim中的一個令人沮喪的行爲是,當我將光標向右或向左移動(分別爲「l」或「h」),並且位於行尾或行首時,我的光標不會移動到下一行的第一列或上一行的最後一列。自動轉到vim中的下一行

有沒有辦法改變這種行爲?

+1

這不正是一個編程問題,但... – 2010-04-04 09:33:58

+0

...但它是關於「通過常用工具軟件問題程序員」。 :)(不可否認,它不是「軟件開發所特有的」問題)。 – lindhe 2015-03-09 09:32:48

+1

'set nocompatible'在我的'vim'配置中禁用了這個功能 – Paschalis 2015-07-11 16:56:40

回答

24

可以使用whichwrap設置,使h和周圍各條線的起點和終點l總結:

set whichwrap+=h,l 

然而,Vim的文檔建議不要這樣做,可能是因爲它可能會產生意想不到的副作用(如打破插件,或更改普通密鑰映射的工作方式)。

作爲替代方案,你可以做什麼馬蒂Virkkunen什麼建議:

set whichwrap+=<,>,[,] 

這使得hl與它們的默認行爲,但允許左,右箭頭鍵環繞線。 (這是我所做的,並且運行良好。)

您可能還想看看backspace設置,以控制Backspace,Delete,Control + W和Control + U在插入模式下的工作方式。我這樣設置我的:

set backspace=indent,eol,start 

這讓我退後幾乎所有的東西。

欲瞭解更多信息,請參閱Vim的幫助,這些主題:

:help 'whichwrap 
:help 'backspace 
+0

你能解釋一下這些是做什麼的嗎? (具體而言,'<', '>','['和']'是什麼意思?) – 2016-08-20 19:54:53

+0

這是一個瀏覽器友好版本':help'whichwrap':https://vimhelp.appspot.com/options.txt。 HTML#%27whichwrap 27% – 2017-07-28 14:27:46

8

把下面的到你的.vimrc:

set whichwrap+=<,>,[,] 
+0

你能解釋一下這個功能嗎? – 2016-08-20 19:55:11

+0

@QPaysTaxes:whichwrap設置指定哪些按鍵將按下時換行到下一個/上一行,而後面的字符分別指向正常模式和插入模式下的光標鍵。您可以添加例如如果你願意,'h,l'也可以包含vim的運動按鍵。 – 2016-08-22 11:25:23