超過 130 個你需要瞭解的 vim 命令

來源:互聯網
上載者:User

標籤:des   android   blog   http   io   ar   os   sp   for   

從 1970 年開始,vi 和 vim 就成為了程式員最喜愛的文字編輯器之一。5年前,我寫了一個問自己名為 “每個程式員都應該知道的 100 個 vim 命令” 這次算是之前那篇文章的改進版,希望你會喜歡。

基礎

:e filename
Open filename for edition

:w
Save file

:q
Exit Vim

:q!
Quit without saving

:x
Write file (if changes has been made) and exit

:sav filename
Saves file as filename

.
Repeats the last change made in normal mode

5.
Repeats 5 times the last change made in normal mode

在檔案中移動

k or Up Arrow
move the cursor up one line

j or Down Arrow
move the cursor down one line

e
move the cursor to the end of the word

b
move the cursor to the begining of the word

0
move the cursor to the begining of the line

G
move the cursor to the end of the line

gg
move the cursor to the begining of the file

L
move the cursor to the end of the file

:59
move cursor to line 59. Replace 59 by the desired line number.

20|
move cursor to column 20.

%
Move cursor to matching parenthesis

[[
Jump to function start

[{
Jump to block start

剪下、複製和粘貼

y
Copy the selected text to clipboard

p
Paste clipboard contents

dd
Cut current line

yy
Copy current line

y$
Copy to end of line

D
Cut to end of line

搜尋

/word
Search word from top to bottom

?word
Search word from bottom to top

*
Search the word under cursor

/\cstring
Search STRING or string, case insensitive

/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

bufdo %s/something/somethingelse/g
Search something in all the open buffers and replace it with somethingelse

替換

:%s/old/new/g
Replace all occurences of old by new in file

:%s/onward/forward/gi
Replace onward by forward, case unsensitive

:%s/old/new/gc
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/^M//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

gggUG
Set all text to uppercase

: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

:Sex!
Same as :Sex but split window vertically

: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

和 Unix 系統互動

:!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

Tabs/Windows

: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

:new abc.txt
Edit abc.txt in new window

分屏顯示

: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_
Maximize current window vertically

ctrl-w|
Maximize current window horizontally

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

Marks

m {a-z}
Marks current position as {a-z}

‘ {a-z}
Move to position {a-z}

‘‘
Move to previous position

縮寫

:ab mail [email protected]
Define mail as abbreviation of [email protected]

文本縮排

: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

=%
Indent the code between parenthesis

1GVG=
Indent the whole file

文法高亮

:syntax on
Turn on syntax highlighting

:syntax off
Turn off syntax highlighting

:set syntax=perl
Force syntax highlighting

via catswhocode

相關連結
  • Vim 的詳細介紹:請點這裡
  • Vim 的:請點這裡

想通過手機用戶端(支援 Android、iPhone 和 Windows Phone)訪問開源中國:請點這裡

本站文章除註明轉載外,均為本站原創或編譯
歡迎任何形式的轉載,但請務必註明出處,尊重他人勞動共創開源社區
轉載請註明:文章轉載自:開源中國社區 [http://www.oschina.net]
本文標題:超過 130 個你需要瞭解的 vim 命令
本文地址:http://www.oschina.net/news/43167/130-essential-vim-commands

超過 130 個你需要瞭解的 vim 命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.