当前位置: 首页>>技术教程>>正文


linux – VIM:如何在Ubuntu上进行精确定位

, , , ,

问题描述

我在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是行号。

用于查看(moreless;):

$ less +N yourfile
$ more +N yourfile

标志+表示要在启动时运行。因此,如果命令只是一个数字,则vilessmore会作为行号跳至该数字。

但是,您也可以使用/regex查找特定字符串或正则表达式的首次出现:

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...

第五种方案

另一个建议:由于您不熟悉vim,因此运行vimtutor可能会很有帮助。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8939.html,未经允许,请勿转载。