Vim:在长线内快速移动
我已经启用了自动换行function,并且往往有相当长的行数。 但是在“w”这个实际上是4行的行内移动很麻烦。 我一直使用/跳到我正在寻找的单词,但似乎过分了一点。
任何提示如何更快地行内?
谢谢,
MRB
- 您可以使用
$
,0
和^
移动到行终点,然后使用w
和b
。 另外,向w
和b
添加一个数字参数可以加速这个过程,所以使用6w
而不是w
可以把你放到需要的地方。 - 使用
f
和t
移动到单个字符也将有所帮助。 (我通常用这个标点符号,例如,如果我在一条长长的一行上有四个句子,就会到第二个句子的末尾) - 使用
(
和)
键是导航整个句子的一种替代方法。 - 将长线分成多行(手动或者
set tw=72
[或80])可以使编辑变得更简单。 你可以随时joinJ
- 我刚刚发现的东西,可以通过使用
gj
和gk
上下移动显示的一行。 这样,你可以把你的一个包装行作为多行。
如果您对正在编辑的数据types发表评论,可能会使我们更容易提出build议。
我想你可以从gk和gj中获益,而不仅仅是k和j。
另外看一下'virtualedit'
的一些选项,允许你通过“空白”区域的光标,而不用将光标轻弹到下一个最好的物理字符。
你可能想(暂时)
nnoremap <buffer> k gk nnoremap <buffer> j gj
省略<buffer>
部分以全局应用。
您可以使用(
和)
按句子导航; 它只是寻找.
,但这可能是非常有帮助的,特别是如果你不喜欢这个句子并想改变它: (c)
将跳到当前句子的开头,然后改变整个句子。
你也可以使用w
和e
和count修饰符来移动单词。 3w
会一次移动三个字。
您也可以使用f
和F
向前和向后search特定的字符。 如果你正在寻找比the
词更syzygy
或者更syzygy
的词,那么这会更有用。 🙂
如果您select重新映射这些路线:
nnoremap k gk nnoremap j gj
这里还有其他一些其他人:
nnoremap 0 g0 nnoremap $ g$ nnoremap ^ g^
我的首选策略是在使用f
F
和t
T
来调整angular色的时候。 是什么让这个运动家庭超负荷的是,你可以利用;
和运动,所以你不必计算相对于光标的angular色的位置,而只是通过他们(与非常有用的
'
"
等)
假设我们有一条线:
reallyLongObjectName.longMethod().prettyPrettyLongMethod().burp();
如果我们需要跳到从行首开始的第三个点,我们可以使用3f.
或f.;;
前往两点,落地第三。
虽然;
,
风格可以使用更多的击键,我发现整体更加灵活和有趣。
我最近开始使用一个插件,我发现非常快速地在一行(或孔文件)内移动。
插件的名字是PreciseJump,你可以在这里find它。
当你使用这个插件时,它定义为映射_f和_F。
如果您键入_f后跟x,则会突出显示所有x个字符,并将临时replace为您可以按下以跳转到该位置的其他字符。 检查脚本页面的插图。
您也可以用W
B
移动,跳到下一个空格:) G
移动到文档的末尾
请注意,使用“g”,然后使用“上”或“下”箭头确实可以正常工作,但是如果您有很长的线条并且很快就会移动,您可能会错误地input“gg”,并在文本的顶部结束。 (撤消不会让你回来,而且AFAIK没有一个按键的方式可以回到你所在的位置。)
这发生在我身上太多次了。
我所做的是,我build议你修改(或创build)你的“〜/ .vimrc”并添加这两行:
map <C-Up> g<Up> map <C-Down> g<Down>
这会将控制和控制映射到运动命令。 会使得忘记“gg”成为不可能的事情,并且与控制权和控制权完全一致地走在长线之间。
如果添加这两行,则可以在插入模式下使用相同的命令(!)
imap <C-Up> <C-[> g<Up> i imap <C-Down> <C-[> g<Down> i
(VIM很棒!)
Greg Ruo