vi编辑器(vi sual编辑器) - 快速参考指南。
要启动vi:

vi 文件名

参数


-b        二进制模式
-d        差异模式
-m        只读模式
-n        缓存不适用
-r        显示缓存信息
-R        只读模式
-s        运行时不显示处理信息
-V        运行时显示详细信的处理信息
+<行数>   从指定的行数开始显示
-C<命令>  设置编辑完成之后的命令
-o<数字>  指定同时打开的文件数
--help    显示帮助信息
--version 显示版本信息

进入vi后的,内部命令

移动光标类命令

h :          光标左移一个字符 
l :          光标右移一个字符 
space:       光标右移一个字符 
Backspace:   光标左移一个字符 
k或Ctrl+p:   光标上移一行 
j或Ctrl+n :  光标下移一行 
Enter :      光标下移一行 
w或W :       光标右移一个字至字首 
b或B :       光标左移一个字至字首 
e或E :       光标右移一个字至字尾 
) :          光标移至句尾 
( :          光标移至句首 
}:           光标移至段落开头 
{:           光标移至段落结尾 
nG:          光标移至第n行首 
n+:          光标下移n行 
n-:          光标上移n行 
n$:          光标移至第n行尾 
H :          光标移至屏幕顶行 
M :          光标移至屏幕中间行 
L :          光标移至屏幕最后行 
0:          (注意是数字零)光标移至当前行首 
$:           光标移至当前行尾 

屏幕翻滚类命令

Ctrl+u:    向文件首翻半屏 
Ctrl+d:    向文件尾翻半屏 
Ctrl+f:    向文件尾翻一屏 
Ctrl+b:    向文件首翻一屏 
nz:        将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 

插入文本类命令

i :    在光标前 
I :    在当前行首 
a:     光标后 
A:     在当前行尾 
o:     在当前行之下新开一行 
O:     在当前行之上新开一行 
r:     替换当前字符 
R:     替换当前字符及其后的字符,直至按ESC键 
s:     从当前光标位置处开始,以输入的文本替代指定数目的字符 
S:     删除指定数目的行,并以所输入文本代替之 
ncw或nCW:   修改指定数目的字 
nCC:        修改指定数目的行 

删除命令

ndw或ndW:      删除光标处开始及其后的n-1个字 
do:            删至行首 
d$:            删至本行尾 
dG:            删至文件行尾 
ndd:           删除当前行及其后n-1行 
x或X:          删除一个字符,x删除光标后的,而X删除光标前的 
Ctrl+u:        删除输入方式下所输入的文本 

搜索及替换命令

/pattern:       从光标开始处向文件尾搜索pattern 
?pattern:       从光标开始处向文件首搜索pattern 
n:              在同一方向重复上一次搜索命令 
N:              在反方向上重复上一次搜索命令 
:s/p1/p2/g:     将当前行中所有p1均用p2替代 
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 
:g/p1/s//p2/g:  将文件中所有p1均用p2替换 
:%s/p1/p2/g      将文件中所有p1均用p2替换

选项设置

all:         列出所有选项设置情况 
term:        设置终端类型 
ignorance:   在搜索中忽略大小写 
list:        显示制表位(Ctrl+I)和行尾标志($) 
number:      显示行号 
report:      显示由面向行的命令修改过的数目 
terse:       显示简短的警告信息 
warn:        在转到别的文件时若没保存当前文件则显示NO write信息 
nomagic:     允许在搜索模式中,使用前面不带“\”的特殊字符 
nowrapscan:  禁止vi在搜索到达文件两端时,又从另一端开始 
mesg:       允许vi显示其他用户用write写到自己终端上的信息 

最后行方式命令

:n1,n2 co n3:    将n1行到n2行之间的内容拷贝到第n3行下 
:n1,n2 m n3:     将n1行到n2行之间的内容移至到第n3行下 
:n1,n2 d :       将n1行到n2行之间的内容删除 
:w :             保存当前文件 
:e filename:     打开文件filename进行编辑 
:x:              保存当前文件并退出 
:q:              退出vi 
:q!:              不保存文件并退出vi 
:!command:        执行shell命令command 
:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,
                    则表示将整个文件内容作为command的输入 
:r!command:       将命令command的输出结果放到当前行 

寄存器操作

"?nyy:   将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 
"?nyw:   将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 
"?nyl:   将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 
"?p:     取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 
ndd:     将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

vi 命令实例:

linux命令:vi +'bufdo %s/pattern/replacement/g | update' +q $(grep -rl pattern /path/to/dir) /path/to/dir) pattern -rl $(grep +q update' | %s/pattern/replacement/g +'bufdo vi vi +'bufdo %s/pattern/replacement/g | update' +q $(grep -rl pattern /path/to/dir)rootopen.com
linux命令:vi +'bufdo %s/pattern/replacement/g | update' +q $(grep -rl pattern /path/to/dir) /path/to/dir) pattern -rl $(grep +q update' | %s/pattern/replacement/g +'bufdo vi vi +'bufdo %s/pattern/replacement/g | update' +q $(grep -rl pattern /path/to/dir)rootopen.com
2018-12-02 21:52:29

linux命令:vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin HISTSIZE=0 export PATH .bash_profile (END) (END) PATH .bash_profile programs PATH=$PATH:$HOME/bin HISTSIZE=0 export startup and environment specific User ~/.bashrc fi # then . ]; ~/.bashrc -f [ functions if and aliases the Get .bash_profile # .bash_profile # vi vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin HISTSIZE=0 export PATH .bash_profile (END)rootopen.com
linux命令:vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin HISTSIZE=0 export PATH .bash_profile (END) (END) PATH .bash_profile programs PATH=$PATH:$HOME/bin HISTSIZE=0 export startup and environment specific User ~/.bashrc fi # then . ]; ~/.bashrc -f [ functions if and aliases the Get .bash_profile # .bash_profile # vi vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin HISTSIZE=0 export PATH .bash_profile (END)rootopen.com
2018-09-11 09:55:30

linux命令:vi .bash_history cd / tmp / cd logstalgia-1.0.3 / ./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12 -dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql -u root -p apt-get install grsync apt-get install unison unison unison unison install apt-get grsync install apt-get -p root -u mysql make install apt-get gcc make libjpeg62-dev libpng12-dev libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get ++ gcc make libjpeg62-dev libpng12-dev libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get make ./configure gcc make libjpeg62-dev -dev libpng12 libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get root passwd sudo ./configure / logstalgia-1.0.3 cd / tmp / cd .bash_history vi vi .bash_history cd / tmp / cd logstalgia-1.0.3 / ./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12 -dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql -u root -p apt-get install grsync apt-get install unison unisonrootopen.com
linux命令:vi .bash_history cd / tmp / cd logstalgia-1.0.3 / ./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12 -dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql -u root -p apt-get install grsync apt-get install unison unison unison unison install apt-get grsync install apt-get -p root -u mysql make install apt-get gcc make libjpeg62-dev libpng12-dev libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get ++ gcc make libjpeg62-dev libpng12-dev libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get make ./configure gcc make libjpeg62-dev -dev libpng12 libftgl-dev libpcre3-dev libsdl-image1.2-dev libsdl1.2-dev install apt-get root passwd sudo ./configure / logstalgia-1.0.3 cd / tmp / cd .bash_history vi vi .bash_history cd / tmp / cd logstalgia-1.0.3 / ./configure sudo passwd root apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12 -dev libjpeg62-dev make gcc ./configure make apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ++ apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get install make mysql -u root -p apt-get install grsync apt-get install unison unisonrootopen.com
2018-09-11 09:55:30

linux命令:vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export PATH PATH HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export programs export startup and environment specific User ~/.bashrc fi # then . ]; ~/.bashrc -f [ functions if and aliases the Get .bash_profile # .bash_profile # vi vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export PATHrootopen.com
linux命令:vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export PATH PATH HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export programs export startup and environment specific User ~/.bashrc fi # then . ]; ~/.bashrc -f [ functions if and aliases the Get .bash_profile # .bash_profile # vi vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export HISTCONTROL=ignoredups PATH=$PATH:$HOME/bin export PATHrootopen.com
2018-09-11 09:55:30

linux命令:view `ls -1 access_log.* | tail -n 1` 1` -n tail | access_log.* -1 `ls view view `ls -1 access_log.* | tail -n 1`rootopen.com
linux命令:view `ls -1 access_log.* | tail -n 1` 1` -n tail | access_log.* -1 `ls view view `ls -1 access_log.* | tail -n 1`rootopen.com
2018-04-17 18:02:48

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
2018-01-09 02:20:48

linux命令:vimtutor vimtutor vimtutorrootopen.com
linux命令:vimtutor vimtutor vimtutorrootopen.com
2018-04-14 02:01:48

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
2018-03-16 15:55:48

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
2018-04-21 17:38:48

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
2018-01-29 00:58:48

linux命令:vi -R filename filename -R vi vi -R filenamerootopen.com
linux命令:vi -R filename filename -R vi vi -R filenamerootopen.com
2018-04-27 09:05:48

linux命令:vifind() { vi `find . -name "$1"` } } "$1"` -name . `find vi { vifind() vifind() { vi `find . -name "$1"` }rootopen.com
linux命令:vifind() { vi `find . -name "$1"` } } "$1"` -name . `find vi { vifind() vifind() { vi `find . -name "$1"` }rootopen.com
2018-03-11 23:01:48

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
2018-01-16 13:57:48

linux命令:visudo visudo visudorootopen.com
linux命令:visudo visudo visudorootopen.com
2018-04-21 18:54:48

linux命令:vi ~/journal/$(date +%F) +%F) ~/journal/$(date vi vi ~/journal/$(date +%F)rootopen.com
linux命令:vi ~/journal/$(date +%F) +%F) ~/journal/$(date vi vi ~/journal/$(date +%F)rootopen.com
2018-04-12 19:20:48

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
2018-03-19 05:00:48

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
2018-02-01 16:08:48

linux命令:vi `!!` `!!` vi vi `!!`rootopen.com
linux命令:vi `!!` `!!` vi vi `!!`rootopen.com
2018-03-25 11:33:48

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
2018-03-09 06:53:48

linux命令:vim -x <FILENAME> <FILENAME> -x vim vim -x <FILENAME>rootopen.com
linux命令:vim -x <FILENAME> <FILENAME> -x vim vim -x <FILENAME>rootopen.com
2018-05-20 22:35:48

linux命令:vim `which <scriptname>` <scriptname>` `which vim vim `which <scriptname>`rootopen.com
linux命令:vim `which <scriptname>` <scriptname>` `which vim vim `which <scriptname>`rootopen.com
2018-04-12 00:14:48

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
2018-04-27 15:13:48

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
2018-04-15 17:19:48

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
2018-04-04 01:24:48

linux命令:vim $(grep test *) *) test $(grep vim vim $(grep test *)rootopen.com
linux命令:vim $(grep test *) *) test $(grep vim vim $(grep test *)rootopen.com
2018-03-28 19:45:48

linux命令:vi `!!` `!!` vi vi `!!`rootopen.com
linux命令:vi `!!` `!!` vi vi `!!`rootopen.com
2018-05-15 02:00:48

linux命令:vi ~/.crontab && crontab ~/.crontab ~/.crontab crontab && ~/.crontab vi vi ~/.crontab && crontab ~/.crontabrootopen.com
linux命令:vi ~/.crontab && crontab ~/.crontab ~/.crontab crontab && ~/.crontab vi vi ~/.crontab && crontab ~/.crontabrootopen.com
2018-01-13 05:54:48

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
2017-12-29 16:34:48

linux命令:vipw vipw vipwrootopen.com
linux命令:vipw vipw vipwrootopen.com
2018-01-06 11:40:48

linux命令:vigr vigr vigrrootopen.com
linux命令:vigr vigr vigrrootopen.com
2017-12-28 22:03:48

linux命令:visudo visudo visudorootopen.com
linux命令:visudo visudo visudorootopen.com
2018-05-20 18:23:48

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
2018-04-27 20:04:48

linux命令:vim - - vim vim -rootopen.com
linux命令:vim - - vim vim -rootopen.com
2018-04-23 03:40:48

linux命令:video=$(ls /tmp | grep -e Flash\w*); ffmpeg -i /tmp/$video -f mp3 -ab 192k ~/ytaudio.mp3 ~/ytaudio.mp3 192k -ab mp3 -f /tmp/$video -i ffmpeg Flash\w*); -e grep | /tmp video=$(ls video=$(ls /tmp | grep -e Flash\w*); ffmpeg -i /tmp/$video -f mp3 -ab 192k ~/ytaudio.mp3rootopen.com
linux命令:video=$(ls /tmp | grep -e Flash\w*); ffmpeg -i /tmp/$video -f mp3 -ab 192k ~/ytaudio.mp3 ~/ytaudio.mp3 192k -ab mp3 -f /tmp/$video -i ffmpeg Flash\w*); -e grep | /tmp video=$(ls video=$(ls /tmp | grep -e Flash\w*); ffmpeg -i /tmp/$video -f mp3 -ab 192k ~/ytaudio.mp3rootopen.com
2018-03-16 11:28:48

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
2018-05-15 04:00:48

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
2018-03-06 03:32:48

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
2018-03-07 19:20:48

linux命令:vim $(find . ! -path \*.svn\* -type f -iname \*foo\*) \*foo\*) -iname f -type \*.svn\* -path ! . $(find vim vim $(find . ! -path \*.svn\* -type f -iname \*foo\*)rootopen.com
linux命令:vim $(find . ! -path \*.svn\* -type f -iname \*foo\*) \*foo\*) -iname f -type \*.svn\* -path ! . $(find vim vim $(find . ! -path \*.svn\* -type f -iname \*foo\*)rootopen.com
2018-02-07 02:39:48

linux命令:vim -o file1 file2... file2... file1 -o vim vim -o file1 file2...rootopen.com
linux命令:vim -o file1 file2... file2... file1 -o vim vim -o file1 file2...rootopen.com
2018-03-30 02:38:48

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
2018-05-21 10:51:48

linux命令:vim -r 2>&1 | grep '\.sw.' -A 5 | grep 'still running' -B 5 5 -B running' 'still grep | 5 -A '\.sw.' grep | 2>&1 -r vim vim -r 2>&1 | grep '\.sw.' -A 5 | grep 'still running' -B 5rootopen.com
linux命令:vim -r 2>&1 | grep '\.sw.' -A 5 | grep 'still running' -B 5 5 -B running' 'still grep | 5 -A '\.sw.' grep | 2>&1 -r vim vim -r 2>&1 | grep '\.sw.' -A 5 | grep 'still running' -B 5rootopen.com
2018-01-01 20:44:48

linux命令:vi +/pattern [file] [file] +/pattern vi vi +/pattern [file]rootopen.com
linux命令:vi +/pattern [file] [file] +/pattern vi vi +/pattern [file]rootopen.com
2018-01-01 23:36:48

linux命令:vix(){ vim +'w | set ar | silent exe "!chmod +x %" | redraw!' $@; } } $@; redraw!' | %" +x "!chmod exe silent | ar set | +'w vim vix(){ vix(){ vim +'w | set ar | silent exe "!chmod +x %" | redraw!' $@; }rootopen.com
linux命令:vix(){ vim +'w | set ar | silent exe "!chmod +x %" | redraw!' $@; } } $@; redraw!' | %" +x "!chmod exe silent | ar set | +'w vim vix(){ vix(){ vim +'w | set ar | silent exe "!chmod +x %" | redraw!' $@; }rootopen.com
2018-05-02 04:18:48

linux命令:vimlint(){ eval $(xmllint --noout "$1" 2>&1 | awk -F: '/parser error/{print "vim \""$1"\" +"$2; exit}'); } } exit}'); +"$2; \""$1"\" "vim error/{print '/parser -F: awk | 2>&1 "$1" --noout $(xmllint eval vimlint(){ vimlint(){ eval $(xmllint --noout "$1" 2>&1 | awk -F: '/parser error/{print "vim \""$1"\" +"$2; exit}'); }rootopen.com
linux命令:vimlint(){ eval $(xmllint --noout "$1" 2>&1 | awk -F: '/parser error/{print "vim \""$1"\" +"$2; exit}'); } } exit}'); +"$2; \""$1"\" "vim error/{print '/parser -F: awk | 2>&1 "$1" --noout $(xmllint eval vimlint(){ vimlint(){ eval $(xmllint --noout "$1" 2>&1 | awk -F: '/parser error/{print "vim \""$1"\" +"$2; exit}'); }rootopen.com
2018-02-27 18:11:48

linux命令:vim --version | grep -P '^(\+|\-)' | sed 's/\s/\n/g' | grep -Pv '^ ?$' ?$' '^ -Pv grep | 's/\s/\n/g' sed | '^(\+|\-)' -P grep | --version vim vim --version | grep -P '^(\+|\-)' | sed 's/\s/\n/g' | grep -Pv '^ ?$'rootopen.com
linux命令:vim --version | grep -P '^(\+|\-)' | sed 's/\s/\n/g' | grep -Pv '^ ?$' ?$' '^ -Pv grep | 's/\s/\n/g' sed | '^(\+|\-)' -P grep | --version vim vim --version | grep -P '^(\+|\-)' | sed 's/\s/\n/g' | grep -Pv '^ ?$'rootopen.com
2018-03-03 02:20:48

linux命令:vim !$ !$ vim vim !$rootopen.com
linux命令:vim !$ !$ vim vim !$rootopen.com
2018-05-29 20:52:48

linux命令:vi2() {for i in $@; do [ -f "$i" ] && [ ! -w "$i" ] && sudo vim $@ && return; done; vim $@} $@} vim done; return; && $@ vim sudo && ] "$i" -w ! [ && ] "$i" -f [ do $@; in i {for vi2() vi2() {for i in $@; do [ -f "$i" ] && [ ! -w "$i" ] && sudo vim $@ && return; done; vim $@}rootopen.com
linux命令:vi2() {for i in $@; do [ -f "$i" ] && [ ! -w "$i" ] && sudo vim $@ && return; done; vim $@} $@} vim done; return; && $@ vim sudo && ] "$i" -w ! [ && ] "$i" -f [ do $@; in i {for vi2() vi2() {for i in $@; do [ -f "$i" ] && [ ! -w "$i" ] && sudo vim $@ && return; done; vim $@}rootopen.com
2018-02-27 11:58:48

linux命令:vim txt.gz txt.gz vim vim txt.gzrootopen.com
linux命令:vim txt.gz txt.gz vim vim txt.gzrootopen.com
2018-03-02 11:15:48

linux命令:vim ... :nmap <F5> :w^M:!python %<CR> %<CR> :w^M:!python <F5> :nmap ... vim vim ... :nmap <F5> :w^M:!python %<CR>rootopen.com
linux命令:vim ... :nmap <F5> :w^M:!python %<CR> %<CR> :w^M:!python <F5> :nmap ... vim vim ... :nmap <F5> :w^M:!python %<CR>rootopen.com
2018-02-06 18:16:48

linux命令:vimcmd() { $1 > $2 && vim $2; } } $2; vim && $2 > $1 { vimcmd() vimcmd() { $1 > $2 && vim $2; }rootopen.com
linux命令:vimcmd() { $1 > $2 && vim $2; } } $2; vim && $2 > $1 { vimcmd() vimcmd() { $1 > $2 && vim $2; }rootopen.com
2018-04-19 03:11:48

Linux的Bash命令行(A-Z排序)