用vim显示带有偏移量的文本块,就像使用AWK一样

通过使用vim,你也可以在stdout上过滤内容,使用vim的额外功能,比如搜索模式偏移量!当然没有更多的awk,sorry.details:-e ex mode -s silent -c'ex命令':global + start和结束图案+胶印(p)-cq:退出
.

0

linux命令:vim -e -s -c 'g/start_pattern/+1,/stop_pattern/-1 p' -cq file.txt file.txt -cq p' 'g/start_pattern/+1,/stop_pattern/-1 -c -s -e vim vim -e -s -c 'g/start_pattern/+1,/stop_pattern/-1 p' -cq file.txtrootopen.com
linux命令:vim -e -s -c 'g/start_pattern/+1,/stop_pattern/-1 p' -cq file.txt file.txt -cq p' 'g/start_pattern/+1,/stop_pattern/-1 -c -s -e vim vim -e -s -c 'g/start_pattern/+1,/stop_pattern/-1 p' -cq file.txtrootopen.com
cvdn 2017-12-29 16:34:48
输出

评论

相关推荐

vimdiff到远程主机

linux命令:vimdiff tera.py <(ssh -A testserver "cat tera.py") tera.py") "cat testserver -A <(ssh tera.py vimdiff vimdiff tera.py <(ssh -A testserver "cat tera.py")rootopen.com
linux命令:vimdiff tera.py <(ssh -A testserver "cat tera.py") tera.py") "cat testserver -A <(ssh tera.py vimdiff vimdiff tera.py <(ssh -A testserver "cat tera.py")rootopen.com
.

做到这一点。

linux命令:vimtutor vimtutor vimtutorrootopen.com
linux命令:vimtutor vimtutor vimtutorrootopen.com
.

linux命令:vim scp://username@host//path/to/somefile scp://username@host//path/to/somefile vim vim scp://username@host//path/to/somefilerootopen.com
linux命令:vim scp://username@host//path/to/somefile scp://username@host//path/to/somefile vim vim scp://username@host//path/to/somefilerootopen.com
.

从http://linux.spiney.org/remote_diff_with_vim_and_ssh取消,其中指出了灵感来源。

linux命令:vimdiff /path/to/file scp://remotehost//path/to/file scp://remotehost//path/to/file /path/to/file vimdiff vimdiff /path/to/file scp://remotehost//path/to/filerootopen.com
linux命令:vimdiff /path/to/file scp://remotehost//path/to/file scp://remotehost//path/to/file /path/to/file vimdiff vimdiff /path/to/file scp://remotehost//path/to/filerootopen.com
.

编辑文件,每个文件在一个单独的选项卡中。使用gT和gt分别移动到左侧和右侧选项卡。要在编辑时添加另一个选项卡,请键入':tabe文件名'

linux命令:vim -p file1 file2 ... ... file2 file1 -p vim vim -p file1 file2 ...rootopen.com
linux命令:vim -p file1 file2 ... ... file2 file1 -p vim vim -p file1 file2 ...rootopen.com
.

linux命令:vim $( ls -t | head -n1 ) ) -n1 head | -t ls $( vim vim $( ls -t | head -n1 )rootopen.com
linux命令:vim $( ls -t | head -n1 ) ) -n1 head | -t ls $( vim vim $( ls -t | head -n1 )rootopen.com
.

vim将并排打开这两个文件并显示有色差异

linux命令:vimdiff file{1,2} file{1,2} vimdiff vimdiff file{1,2}rootopen.com
linux命令:vimdiff file{1,2} file{1,2} vimdiff vimdiff file{1,2}rootopen.com
.

linux命令:vimdiff foo.c <(bzr cat -r revno:-2 foo.c) foo.c) revno:-2 -r cat <(bzr foo.c vimdiff vimdiff foo.c <(bzr cat -r revno:-2 foo.c)rootopen.com
linux命令:vimdiff foo.c <(bzr cat -r revno:-2 foo.c) foo.c) revno:-2 -r cat <(bzr foo.c vimdiff vimdiff foo.c <(bzr cat -r revno:-2 foo.c)rootopen.com
.

所以你不断听到来自pidgin的嗡嗡声,但你不记得哪个伙伴突袭导致嘟嘟声。那么,猫/编辑〜/ .purple / pounces并找出!

linux命令:vim ~/.purple/pounces.xml ~/.purple/pounces.xml vim vim ~/.purple/pounces.xmlrootopen.com
linux命令:vim ~/.purple/pounces.xml ~/.purple/pounces.xml vim vim ~/.purple/pounces.xmlrootopen.com
.

虽然我喜欢gpg和truecrypt,但有些时候你只是想编辑一个文件,而不用担心密钥或手头上需要额外的软件。因此,您可以使用vim的加密文件格式。有关vim加密文件的更多信息,请访问:http://www.vim.org/htmldoc/editing.html#encryption

linux命令:vim -x <FILENAME> <FILENAME> -x vim vim -x <FILENAME>rootopen.com
linux命令:vim -x <FILENAME> <FILENAME> -x vim vim -x <FILENAME>rootopen.com
.

通常我需要编辑我写的bash或perl脚本。我知道这是在我的道路上,但我不想打字的整个路径(或我不记得路径)。

linux命令:vim `which <scriptname>` <scriptname>` `which vim vim `which <scriptname>`rootopen.com
linux命令:vim `which <scriptname>` <scriptname>` `which vim vim `which <scriptname>`rootopen.com
.

:新命令允许在两个单独的窗口中分割Vim屏幕。每个窗口都可以处理自己的缓冲区。当Vim开始自动分割屏幕时,通过-c新选项。

linux命令:vim -c new myfile myfile new -c vim vim -c new myfilerootopen.com
linux命令:vim -c new myfile myfile new -c vim vim -c new myfilerootopen.com
.

有点混乱,但功能。需要vim> = 7.x.

linux命令:vimdiff scp://[user@]host1/<file> scp://[user@]host2/<file> scp://[user@]host2/<file> scp://[user@]host1/<file> vimdiff vimdiff scp://[user@]host1/<file> scp://[user@]host2/<file>rootopen.com
linux命令:vimdiff scp://[user@]host1/<file> scp://[user@]host2/<file> scp://[user@]host2/<file> scp://[user@]host1/<file> vimdiff vimdiff scp://[user@]host1/<file> scp://[user@]host2/<file>rootopen.com
.

linux命令:vimdiff <file> scp://[<user>@]<host>/<file> scp://[<user>@]<host>/<file> <file> vimdiff vimdiff <file> scp://[<user>@]<host>/<file>rootopen.com
linux命令:vimdiff <file> scp://[<user>@]<host>/<file> scp://[<user>@]<host>/<file> <file> vimdiff vimdiff <file> scp://[<user>@]<host>/<file>rootopen.com
.

我经常使用“vim -p”在标签而不是缓冲区中打开。

linux命令:vim $(grep test *) *) test $(grep vim vim $(grep test *)rootopen.com
linux命令:vim $(grep test *) *) test $(grep vim vim $(grep test *)rootopen.com
.

这会将你的本地版本的文件与svn中的最新版本区分开来。我把它放在shell函数中,如下所示:svd(){vimdiff <(svn cat“$ 1”)“$ 1”; }

linux命令:vimdiff <(svn cat "$1") "$1" "$1" "$1") cat <(svn vimdiff vimdiff <(svn cat "$1") "$1"rootopen.com
linux命令:vimdiff <(svn cat "$1") "$1" "$1" "$1") cat <(svn vimdiff vimdiff <(svn cat "$1") "$1"rootopen.com
.

我不知道你以前是否使用过sqsh。但它有一个方便的功能,它允许你切换到vim来完成你想要运行的任何复杂的SQL语句的编辑。但是我不得不想 - 为什么bash没有这个功能呢?那么,它的确如此。这就是所谓的'|'!Jk。实际上,我很确定这个命令流将彻底改变我管理文件的方式。首先,如果你的ls被别名为ls --color = auto,那么在你的.bashrc中创建另一个别名:alias lsp ='ls - color = none'Now,假设你想要将所有以'ras'开头的文件重命名为以'raster'为前缀的文件。你可以用一些bash替换来完成。但谁记得这一点?我记得vim宏,因为我可以记住按'qa'以及如何在vim中移动。另外,它更加增量。你可以检查一路上的事情。这是发展的秘密,也可能是宇宙。因此,输入如下所示的内容:lsp | grep ras那些你需要移动的所有文件?如果没有,修改并重新grep。如果是这样,请将其管理到vim.lsp | grep ras | vim - 现在运行你的vim宏来修改第一行。假设你使用'w'和'b'来移动等,它应该适用于所有行。按住'@@'等等,直到你的文件列表被修改自ras_a.cppras_b.hras_b.cppto:mv ras_a.h raster_a.hmv ras_a.cpp raster_a.cppmv ras_b.h raster_b.hmv ras_b.h raster_b.cpp然后运行:%!bashthen run:q!然后就像whaaaaa?因为你意识到你的工作流程更持续一点。也许。因人而异。

linux命令:vim - - vim vim -rootopen.com
linux命令:vim - - vim vim -rootopen.com
.

一个非常有趣的vim oneliner,用于在脚本中自动记录选项的解析#在命令行解析选项的情况下,打印嵌入的文本#该块与注释中的标记'CommandParse'匹配,直到'esac'extract_cmdl_options( ){#使用vim进行解析:#1 grep大小写块并将其复制到寄存器@p + unindent中放在文件本身的缓冲区中#第二个过滤行以--opt或+ opt开头,一个空行#第三个丢弃缓冲区中的变化并退出vim -n -es -c'g /#CommandParse / + 2,/ ^ \ s \ + esac / -1 dp | %d |把p | %-c'g / ^ \([ - +] \ + [^)] \ + \))/,/ ^ \(\ s \ + [^ - \ t#] \ | ^ $ \)/ - 1 p'\ -c'q!' $ 0}示例代码:http://snipplr.com/view/25059/display-embeded-comments-for-every-opt-usefull-for-auto-documenting-your-script/

linux命令:vim -n -es -c 'g/# CommandParse/+2,/^\s\+esac/-1 d p | % d | put p | %<' -c 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- \t#]\|^$\)/-1 p' -c 'q!' $0 $0 'q!' -c p' \t#]\|^$\)/-1 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- -c %<' | p put | d % | p d CommandParse/+2,/^\s\+esac/-1 'g/# -c -es -n vim vim -n -es -c 'g/# CommandParse/+2,/^\s\+esac/-1 d p | % d | put p | %<' -c 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- \t#]\|^$\)/-1 p' -c 'q!' $0rootopen.com
linux命令:vim -n -es -c 'g/# CommandParse/+2,/^\s\+esac/-1 d p | % d | put p | %<' -c 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- \t#]\|^$\)/-1 p' -c 'q!' $0 $0 'q!' -c p' \t#]\|^$\)/-1 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- -c %<' | p put | d % | p d CommandParse/+2,/^\s\+esac/-1 'g/# -c -es -n vim vim -n -es -c 'g/# CommandParse/+2,/^\s\+esac/-1 d p | % d | put p | %<' -c 'g/^\([-+]\+[^)]\+\))/,/^\(\s\+[^- \t#]\|^$\)/-1 p' -c 'q!' $0rootopen.com
.

你可以在一个简单的例子中使用vim scp://root@example.com//filetoo。

linux命令:vimdiff scp://root@server-foo.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.conf scp://root@server-foo.com//etc/snmp/snmpd.conf vimdiff vimdiff scp://root@server-foo.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.confrootopen.com
linux命令:vimdiff scp://root@server-foo.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.conf scp://root@server-foo.com//etc/snmp/snmpd.conf vimdiff vimdiff scp://root@server-foo.com//etc/snmp/snmpd.conf scp://root@server-bar.com//etc/snmp/snmpd.confrootopen.com
.

linux命令:vim suite.js -c '%s!/\*\_.\{-}\*/!!g' '%s!/\*\_.\{-}\*/!!g' -c suite.js vim vim suite.js -c '%s!/\*\_.\{-}\*/!!g'rootopen.com
linux命令:vim suite.js -c '%s!/\*\_.\{-}\*/!!g' '%s!/\*\_.\{-}\*/!!g' -c suite.js vim vim suite.js -c '%s!/\*\_.\{-}\*/!!g'rootopen.com
.
共收录0条命令行
这里是记录和分享命令行的地方, 所有命令行都可以进行评论、提交替代方案.

推荐
    热门命令