用于甚长线路的vim导航
我正在用vim编辑一个文本文件,我使用“set wrap”启用了wrap。假设我有一条很长的线,它被包装成10行。假设我在第5行(包装时在第一行),我想进入第7行(包装时)的一个单词。我到那条线最快的方法是什么。我不太想去用于甚长线路的vim导航,vim,Vim,我正在用vim编辑一个文本文件,我使用“set wrap”启用了wrap。假设我有一条很长的线,它被包装成10行。假设我在第5行(包装时在第一行),我想进入第7行(包装时)的一个单词。我到那条线最快的方法是什么。我不太想去wl——可能有更好/更简单的方法,对吧? gj转到下面的行(同一行,但已包装) gk转到上一行 我的.vimrc里有一张地图 map j gj map k gk 当你知道这个词或看到它时。例如,它是hello,您可以使用/hello搜索它。那应该跳到那里。如果之前有hell
wl
——可能有更好/更简单的方法,对吧?
转到下面的行(同一行,但已包装)gj
转到上一行gk
map j gj
map k gk
当你知道这个词或看到它时。例如,它是hello,您可以使用
/hello
搜索它。那应该跳到那里。如果之前有hello,您可以使用n
进入下一个。有几个动作专门处理:set wrap
;它们大多是前缀为g
的“正常”运动的变体
因此有gj
和gk
可以在屏幕上移动,还有g0
、g^
、g$
,等等。请使用:help
查找更多详细信息。正如Paco在他的文章中所说,您可以使用gj
和gk>导航屏幕行。如果这太麻烦了(可能是这样),您可以将这些行添加到~/.vimrc
中,让普通箭头键按照屏幕行而不是逻辑行导航:
noremap <silent> <Up> gk
noremap <silent> <Down> gj
noremap <silent> <Home> g<Home>
noremap <silent> <End> g<End>
inoremap <silent> <Up> <C-o>gk
inoremap <silent> <Down> <C-o>gj
inoremap <silent> <Home> <C-o>g<Home>
inoremap <silent> <End> <C-o>g<End>
noremap-gk
诺雷马普gj
诺雷马克
诺雷马克
inoremap gk
inoremap gj
inoremap g
inoremap g
我不知道这一点,谢谢你的启发。你不想在其中添加修饰符case@ChristianBrabandt这段代码对我来说非常适用,为什么我不包括
修饰符呢?因为在使用地图时,地图仅限于光标当前所在的缓冲区。这是一个缓冲区本地映射,而您似乎想要一个全局映射。@ChristianBrabandt因为它在.vimrc中,所以它对所有缓冲区都有效。不过,我现在删除了
参数,因为它似乎是多余的。不,它只对第一个缓冲区有效