Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以写一个vim映射,允许我在下一个[计数]行上以可链接的方式执行编辑重复吗?_Vim - Fatal编程技术网

我可以写一个vim映射,允许我在下一个[计数]行上以可链接的方式执行编辑重复吗?

我可以写一个vim映射,允许我在下一个[计数]行上以可链接的方式执行编辑重复吗?,vim,Vim,Vim的dot重复功能是其最强大的功能之一,其强大的根源不在于它的能力如何,而在于它的简单和快速 这实际上有点有限。例如,我经常希望它能做的事情是多“记录”一点。例如,我在bash脚本中有一个很长的行,我想缩短它来清理脚本 注:我使用方括号演示Vim光标的位置 [y]um -y install autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch ftp pkgconfig man ncurses

Vim的dot
重复功能是其最强大的功能之一,其强大的根源不在于它的能力如何,而在于它的简单和快速

这实际上有点有限。例如,我经常希望它能做的事情是多“记录”一点。例如,我在bash脚本中有一个很长的行,我想缩短它来清理脚本

注:我使用方括号演示Vim光标的位置

[y]um -y install autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch ftp pkgconfig man ncurses-devel zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel wget git mercurial ruby ruby-devel libcurl curl-devel perl-devel perl-ExtUtils-Embed subversion swig bind-utils inotify-tools lsof nmap strace expect mc unzip
现在假设Vim确实会以这样一种方式来包装它,我必须附加5个反斜杠才能不破坏脚本

我真的希望能够通过键入VgqkA来完成这项工作\↑Esc4

但这不起作用,因为
不记得箭头键的移动,我必须键入:VgqkA\Esck.k.k.k

或者,只有当我的任务有点复杂和繁重时才实用,因为这需要一个数量级的脑力来执行。。。VGQKA\Esc4@q

现在我想要的可能是绑定另一个键,比如说
,在应用最后一个更改单位时自动推进行,以便使操作在数字上可链接。然后我就可以很自然地这样做了:VgwA\Esc4

这将涵盖90%的情况,即我想录制宏,但无法证明实际这样做是正确的,因为发出移动键并
几次仍然不那么痛苦


这样的装订会是什么样子

当我开始思考这个问题时,我就觉得很简单,在写问题的过程中我不得不这么做。就是这个,

nnoremap , :normal .j<CR>
现在,颠倒将
j
放在前面的顺序可能会使移动流程更好地适应我介绍的情况,但是,这将对将新的
用于其他典型任务(如手动迭代重命名许多变量名)产生负面影响


因此我可以这样做:VgwA\Escj4。

注意,
gq
和其他类似的
g
命令不需要视觉模式。您可以使用
gqgq
,也可以使用短版本,省去第二个g:
gqq
。看起来你想要的是最高的速度,而不必用
V
按下shift键只需要稍微快一点:)事实上,
gqq
是一个很好的替代品。现在。。。。我还在琢磨是否可以使用外部程序来实现
gq
(例如
par
),同时能够将光标保持在起始位置(例如
gw
),我非常难过地报告repeat.vim插件的实现破坏了我的这一绑定。我基本上得把它翻出来,然后写一篇文章。
nnoremap . :normal! .j<CR>