问题描述
我在Ubuntu 12.10上使用vi
。有些文件很长,所以当我想转到文件的中间时,我必须向下翻页或向下滚动。
是否有VIM快捷方式转到确切的行号?
最佳方案
:150
将带您到vi中的150行
:1500
将带您进入VI的1500行
根据您可能想尝试的评论
1
5
0
G
到达第150行。如果您不确定所用的行,则单击:
1
5
0
Enter
:set nu!
注意:
如果您想始终看到该行,请考虑编辑您的vim配置文件。最经常
vi ~/.vimrc
并添加
:set nu!
然后写并退出
:wq
#or you could use :x
这可以在vi之外完成。例如,如果要删除文本文件中的5000行,可以使用脚本语言。例如,使用sed将是以下内容
sed -i '5000d;' inputFile.txt
删除第10至20行
sed -i '10,20d;' inputFile.txt
注意-i将在适当位置编辑文件。如果没有-i,它将转到标准输出。尝试一下。您可以将标准输出重定向到文件
sed '5001,$d;' inputFile.txt >> appenedFile.txt
这可能会给您带来很多麻烦。这会将行5001删除为$。 $是文件的结尾。 >>将追加到文件中。其中>创建一个新文件。
如果您好奇文件中有多少行,则可能要键入wc -l inputFile.txt
其中一些看起来似乎微不足道,但是如果您尝试编辑具有50,000行的文件,则打开和遍历可能要花一分钟的时间。如果您知道只想删除最后一行,则可以使用sed并在短时间内完成。
sed还可以在文件内部搜索和替换。但是也许awk,perl或python也可能是可行的解决方案。
但总的来说,您可能希望在vi上找到一个不错的教程。成千上万的存在。我会咨询谷歌。也许发现自己是VIM作弊。
次佳方案
其他vim技巧:在命令模式下
-
H
转到屏幕顶部 -
M
转到屏幕中间 -
L
转到屏幕的底部 -
g
g
转到第一行 -
G
转到最后一行
第三种方案
花几分钟时间,然后开始阅读this文档。从长远来看,它会奖励您高效地编辑特别是配置文件。
第四种方案
从打开的终端,在bash shell中,只需运行以下命令即可编辑文件:
$ vi +N yourfile
其中N
是行号。
用于查看(more
或less
;):
$ less +N yourfile
$ more +N yourfile
标志+
表示要在启动时运行。因此,如果命令只是一个数字,则vi
,less
和more
会作为行号跳至该数字。
但是,您也可以使用/regex
查找特定字符串或正则表达式的首次出现:
$ less +/Error logfile
$ less -i +/error logfile # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...
第五种方案
另一个建议:由于您不熟悉vim,因此运行vimtutor
可能会很有帮助。