作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一般来说,如果你想在 vim 中的特定行号处打开一个文件,比如第 36 行,你会这样做:
vi +36 foo.c
有没有什么方法可以改变我的 vimrc
文件中的默认格式,方法如下:
vi foo.c:36
原因是 grep 等的输出以后一种格式返回行号。我使用 python 解决了这个问题。但寻找更好的解决方案:
#!/usr/bin/env python
import sys
import os
a=sys.argv[1].split(':')
order = r"/usr/bin/vim +" + a[1] +" " + a[0]
print order
os.system(order)
另一个基于@phd 评论的简单解决方案是
cat ~/bin/dvim
vim `echo $1 | sed 's/:/ +/'`
但这两种解决方案都需要我创建一个新命令。
最佳答案
一个通用的解决方案是使用 Vim 的 -q
选项和进程替换来将 grep 的输出加载到 quickfix 列表中。如果你提前计划好的话,会是这样的:
$ vim -q <(grep -nH foo *)
或者如果你没有这样做:
$ vim -q <(!!)
或者,如果最终目标是无论如何都要编辑一个文件,您可以简单地让 Vim 为您进行 grep:
$ vim +gr\ foo\ *
或者您可以安装 this little plugin .
关于vim - 如何让 vim 使用列格式而不是加号打开特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49927282/
我是一名优秀的程序员,十分优秀!