我有几个例子,我想做以下事情
在档案中:
1234
Run Code Online (Sandbox Code Playgroud)
当光标位于第1位时,我想使用Ctrl-A增加数字,以便我得到
2234
Run Code Online (Sandbox Code Playgroud)
代替
1235
Run Code Online (Sandbox Code Playgroud)
是否有内在的vim命令来执行此操作?
否则,我应该设置一个快速脚本:
像这样,然后映射到一个键?
这实际上是这个问题的变体,但不是重复的:
给出这样的字典:
mydict= { 'a': ['b', 'c'], 'd': ['e', 'f'] }
怎么能反转这个字典得到:
inv_mydict = { 'b':'a', 'c':'a', 'e':'d', 'f':'d' }
请注意,值在每个键下唯一地跨越.
注意:我以前有语法map = ...和dict = ...提醒不使用map,dict因为它们是内置函数,请参阅下面的优秀评论和答案:)
假设我有一个文件(换行符标记为^ n):
aaaa^n
bbbb^n
cccc^n
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的命令将空白回填到块的最右边部分(可能使用视觉选择); 我经常看到有关删除前导空格的问题,但在这种情况下,我希望将前导空格标准化为块中最长的非空白字符,如下所示:
aaaa ^n
bbbb^n
cccc ^n
Run Code Online (Sandbox Code Playgroud) 如果我有一个文件:
aaa / new replacement line
AAA / old target line
random line
random line
BBB / old target line
CCC / old target line
Run Code Online (Sandbox Code Playgroud)
在这个例子中有4个替换,所以最终文件最终应该像:
aaa / new replacement line
aaa / new replacement line
random line
random line
aaa / new replacement line
aaa / new replacement line
Run Code Online (Sandbox Code Playgroud)
我试着在下面给出答案,但也希望看到你对此的意见.也许有一种我不知道的更成功的'vim golf'方法.也许我只是真的很蠢,而且有一个简单的命令.
基本上,问题是:如果我将一条线拉入寄存器,如何完全替换匹配"旧目标线"的搜索线?
这是我的数据:
1.333840,2,3,4,5,6,7,8
1.xxxxxx,2,3,4,5,6,7,8
1.yyyyyy,2,3,4,5,6,7,8
1.zzzzzz,2,3,4,5,6,7,8
Run Code Online (Sandbox Code Playgroud)
我想要做的是让Vim记住我插入的列的位置.这对于处理我上面的固定条目表非常方便.我希望保持插入 REPLACE模式但最小化光标的使用,覆盖上面的模板数据.
xxxxxx应该是444444 yyyyyy应该是555555 zzzzzz应该是666666
我想要做的是从第1行第3列开始并输入
i444444<spreadsheetenter>555555<spreadsheetenter>666666<esc>
是否有特殊模式或键绑定可以帮助我这样做?从重新进入插入模式时,基本上保持返回在同一固定列.
我在.vimrc中有以下内容,以便在保存后进行处理
" source as soon as we write the vimrc file
if has("autocmd")
autocmd bufwritepost .vimrc source $MYVIMRC
endif
Run Code Online (Sandbox Code Playgroud)
但是,我有一个更复杂的文件,似乎保存后发布vimrc文件的时间越来越长,我必须退出我的gvim会话并重新开始.
是否有一个"清晰的工作空间"或更好的方法来解决这个问题,以便我可以整天保持在我的单一gvim会话的舒适范围内?