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/3/go/7.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
使用变量/regexp进行智能文本替换的vim脚本_Vim - Fatal编程技术网

使用变量/regexp进行智能文本替换的vim脚本

使用变量/regexp进行智能文本替换的vim脚本,vim,Vim,我不熟悉vim编辑。我想创建一个脚本或:ab命令来使用变量进行智能替换 我想用我的vimrc中的:ab命令来实现,但我不确定如何或者是否可以为变量实现 例如,当我写作时: :<ab or something else> kuku v1 v2 你知道我是怎么实现的吗?for循环是文本替换的一个例子,但我需要它的一些变体。你不能用缩写来表达逻辑,所以你可以忘记:ab 唯一可以接受您描述的参数的内置命令是自定义命令,如:help user commands所述,可能由自定义函数支持,如:

我不熟悉vim编辑。我想创建一个脚本或
:ab
命令来使用变量进行智能替换

我想用我的
vimrc
中的
:ab
命令来实现,但我不确定如何或者是否可以为变量实现

例如,当我写作时:

:<ab or something else> kuku v1 v2

你知道我是怎么实现的吗?
for
循环是文本替换的一个例子,但我需要它的一些变体。

你不能用缩写来表达逻辑,所以你可以忘记
:ab

唯一可以接受您描述的参数的内置命令是自定义命令,如
:help user commands
所述,可能由自定义函数支持,如
:help user functions
所述

这里是一个粗略的近似值:

function! ForSnippet(init, max)
    put='for (i=' . a:init . ', i<=' . a:max . '; i++){'
    put='}'
    normal O
endfunction
command! -nargs=+ Kuku call ForSnippet(<f-args>)
请注意,对于粗溶液,这已经相当复杂,需要您:

  • 在你得到有用的东西之前要做很多改进
  • 在将来写并维护很多这样的东西
因此,我建议您不要在配置中复制/粘贴上面的代码,而应该探索像或这样的代码段扩展插件,它们的工作方式与您希望的不完全一样,但可以节省大量的输入

function! ForSnippet(init, max)
    put='for (i=' . a:init . ', i<=' . a:max . '; i++){'
    put='}'
    normal O
endfunction
command! -nargs=+ Kuku call ForSnippet(<f-args>)
:Kuku foo bar