在vi中,可以使用以下命令全局替换字符串
:%s/strtoreplace/replacedstr/g有没有可能把它放在.bashrc中(通过一些函数,比如vireplace() ),这样就可以在终端中运行相同的命令,而不需要打开文件。另外,字符串(strtoreplace,replacedstr)应该是提示输入($@),这样它就可以用任何字符串替换任何字符串。我想要像这样的东西
function vireplace() { vim :%s/$@/$@/g $@ ;} 发布于 2016-08-06 16:53:24
您可以使用-c (命令)选项。例如:
vireplace() { vi -c "s/$1/$2/g" -c "wq" $3; }
vireplace 1 x gash.txt这会将文件gash.txt中出现的每个"1“替换为"x”。-c "wq"确保它不是交互式的-如果你也想交互式地使用它,就省略这一点。
但老实说,我不明白当sed可以简单地做同样的事情时,为什么还要使用vim。
发布于 2016-08-06 21:26:11
您可以创建一个调用vi (或ed)的函数,但当其他人需要了解您构建的内容时,请使用sed。
当您正在编辑时,您可以使用一些私人调整,您可以放置在.exrc (仅在您的私人帐户上)。
您可以在$HOME/.exrc中添加函数。
nnoremap <F2> :%s/strtoreplace/replacedstr/g<Enter>测试您正在使用的脚本的另一个示例:
nnoremap <F9> :w<Enter>:!%:p<Enter>https://stackoverflow.com/questions/38800515
复制相似问题