首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bashrc中放置vi替换命令

如何在bashrc中放置vi替换命令
EN

Stack Overflow用户
提问于 2016-08-06 12:21:24
回答 2查看 200关注 0票数 0

在vi中,可以使用以下命令全局替换字符串

代码语言:javascript
复制
:%s/strtoreplace/replacedstr/g

有没有可能把它放在.bashrc中(通过一些函数,比如vireplace() ),这样就可以在终端中运行相同的命令,而不需要打开文件。另外,字符串(strtoreplace,replacedstr)应该是提示输入($@),这样它就可以用任何字符串替换任何字符串。我想要像这样的东西

代码语言:javascript
复制
function vireplace() { vim :%s/$@/$@/g  $@ ;} 
EN

回答 2

Stack Overflow用户

发布于 2016-08-06 16:53:24

您可以使用-c (命令)选项。例如:

代码语言:javascript
复制
vireplace() { vi -c "s/$1/$2/g"  -c "wq" $3; }

vireplace 1 x gash.txt

这会将文件gash.txt中出现的每个"1“替换为"x”。-c "wq"确保它不是交互式的-如果你也想交互式地使用它,就省略这一点。

但老实说,我不明白当sed可以简单地做同样的事情时,为什么还要使用vim

票数 2
EN

Stack Overflow用户

发布于 2016-08-06 21:26:11

您可以创建一个调用vi (或ed)的函数,但当其他人需要了解您构建的内容时,请使用sed

当您正在编辑时,您可以使用一些私人调整,您可以放置在.exrc (仅在您的私人帐户上)。

您可以在$HOME/.exrc中添加函数。

代码语言:javascript
复制
nnoremap <F2> :%s/strtoreplace/replacedstr/g<Enter>

测试您正在使用的脚本的另一个示例:

代码语言:javascript
复制
nnoremap <F9> :w<Enter>:!%:p<Enter>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38800515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档