发布时间:2014-09-05 16:47:05作者:知识屋
自从70年代起,Vi一直是程序员最好的伙伴之一,无论你是Vi新手或者是老手,下面分类给出了100个有用的Vi命令,相信会对你有所帮助。
:e filename | Open filename for edition |
:w | Save file |
:q | Exit Vim |
:w! | Exit Vim without saving |
/word | Search word from top to bottom |
?word | Search word from bottom to top |
/jo[ha]n | Search john or joan |
//< the | Search the, theatre or then |
/the/> | Search the or breathe |
//< the/> | Search the |
//< ¦./> | Search all words of 4 letters |
/// | Search fred but not alfred or frederick |
/fred/|joe | Search fred or joe |
//</d/d/d/d/> | Search exactly 4 digits |
/^/n/{3} | Find 3 empty lines |
:bufdo /searchstr/ | Search in all open files |
:%s/old/new/g | Replace all occurences of old by new in file |
:%s/old/new/gw | Replace all occurences with confirmation |
:2,35s/old/new/g | Replace all occurences between lines 2 and 35 |
:5,$s/old/new/g | Replace all occurences from line 5 to EOF |
:%s/^/hello/g | Replace the begining of each line by hello |
:%s/$/Harry/g | Replace the end of each line by Harry |
:%s/onward/forward/gi | Replace onward by forward, case unsensitive |
:%s/ *$//g | Delete all white spaces |
:g/string/d | Delete all lines containing string |
:v/string/d | Delete all lines containing which didn’t contain string |
:s/Bill/Steve/ | Replace the first occurence of Bill by Steve in current line |
:s/Bill/Steve/g | Replace Bill by Steve in current line |
:%s/Bill/Steve/g | Replace Bill by Steve in all the file |
:%s//r//g | Delete DOS carriage returns (^M) |
:%s//r//r/g | Transform DOS carriage returns in returns |
:%s#<[^>]/+>##g | Delete HTML tags but keeps text |
:%s/^/(.*/)/n/1$//1/ | Delete lines which appears twice |
Ctrl+a | Increment number under the cursor |
Ctrl+x | Decrement number under cursor |
ggVGg? | Change text to Rot13 |
Vu | Lowercase line |
VU | Uppercase line |
g~~ | Invert case |
vEU | Switch word to uppercase |
vE~ | Modify word case |
ggguG | Set all text to lowercase |
:set ignorecase | Ignore case in searches |
:set smartcase | Ignore case in searches excepted if an uppercase letter is used |
:%s//<.//u&/g | Sets first letter of each word to uppercase |
:%s//<.//l&/g | Sets first letter of each word to lowercase |
:%s/.*//u& | Sets first letter of each line to uppercase |
:%s/.*//l& | Sets first letter of each line to lowercase |
:1,10 w outfile | Saves lines 1 to 10 in outfile |
:1,10 w >> outfile | Appends lines 1 to 10 to outfile |
:r infile | Insert the content of infile |
:23r infile | Insert the content of infile under line 23 |
:e . | Open integrated file explorer |
:Sex | Split window and open integrated file explorer |
:browse e | Graphical file explorer |
:ls | List buffers |
:cd .. | Move to parent directory |
:args | List files |
:args *.php | Open file list |
:grep expression *.php | Returns a list of .php files contening expression |
gf | Open file name under cursor |
:!pwd | Execute the pwd unix command, then returns to Vi |
!!pwd | Execute the pwd unix command and insert output in file |
:sh | Temporary returns to Unix |
$exit | Retourns to Vi |
:%!fmt | Align all lines |
!}fmt | Align all lines at the current position |
5!!fmt | Align the next 5 lines |
:tabnew | Creates a new tab |
gt | Show next tab |
:tabfirst | Show first tab |
:tablast | Show last tab |
:tabm n(position) | Rearrange tabs |
:tabdo %s/foo/bar/g | Execute a command in all tabs |
:tab ball | Puts all open files in tabs |
:e filename | Edit filename in current window |
:split filename | Split the window and open filename |
ctrl-w up arrow | Puts cursor in top window |
ctrl-w ctrl-w | Puts cursor in next window |
ctrl-w_ | Maximise current window |
ctrl-w= | Gives the same size to all windows |
10 ctrl-w+ | Add 10 lines to current window |
:vsplit file | Split window vertically |
:sview file | Same as :split in readonly mode |
:hide | Close current window |
:nly | Close all windows, excepted current |
:b 2 | Open #2 in this window |
Ctrl+n Ctrl+p (in insert mode) | Complete word |
Ctrl+x Ctrl+l | Complete line |
:set dictionary=dict | Define dict as a dictionnary |
Ctrl+x Ctrl+k | Complete with dictionnary |
mk | Marks current position as k |
˜k | Moves cursor to mark k |
d™k | Delete all until mark k |
:ab mail mail@provider.org | Define mail as abbreviation of mail@provider.org |
:set autoindent | Turn on auto-indent |
:set smartindent | Turn on intelligent auto-indent |
:set shiftwidth=4 | Defines 4 spaces as indent size |
ctrl-t, ctrl-d | Indent/un-indent in insert mode |
>> | Indent |
<< | Un-indent |
:syntax on | Turn on syntax highlighting |
:syntax off | Turn off syntax highlighting |
:set syntax=perl | Force syntax highlighting |
出自:BugZone - http://www.pulog.org/Resources/2290/vim-cmd
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能