1. gvim簡明教程
文章來源: gvim7.0中自帶的官方版本
vim 是一個具有很多命令的功能非常強大的編輯器。限於篇幅,在本教程當中
就不詳細介紹了。本教程的設計目標是講述一些必要的基本命令,而掌握好這
些命令,您就能夠很容易將vim當作一個通用的萬能編輯器來使用了。
第一講第二節∶VIM的進入和退出
!! 特別提示∶敬請閱讀完整本一節的內容,然磨高後才能判戚執行以下所講解的命令。
---> 這種方式的退出編輯器絕不會保存您進入編輯器以來所做的改動。
如果您想保存更改再退出,請輸入∶
:wq <回車>
vimtutor <回車>
vim tutor <回車>
---> 這里的 'vim' 表示進入vim編輯器,而 'tutor'則是您准備要編輯的文件。
** 在正常模式下,可以按下 i 鍵來插入文本。**
---> There is text misng this .
---> There is some text missing from this line.
第二講第一節∶刪除類命令
特別提示∶您所輸入的 dw 會在您輸入的同時出現在屏幕的最後一行。如果您輸
入有誤,請按下 <ESC> 鍵取消,然後重新再來。
---> There are a some words fun that don't belong paper in this sentence.
刪除命令 d 的格式如下∶
[number] d object 或者 d [number] object
其意如下∶
number - 代表執行命令的次數(可選項,預設設置為 1 )。
d - 代表刪除。
object - 代表命令所要操作的對象(下面有相關介紹)。
一個簡短的對象列表∶
w - 從當前游標當前位置直到單字/單詞末尾,包括空格。
e - 從當前游標當前位置直到單字/單詞末尾,但是 不 包括空格。
$ - 從當前游標當前位置直到當前行末。
特別提示∶
對於勇於探索者,請在正常模式下面僅按代表相應對象的鍵而不使用命令,則
將看到游標的移動正如上面的對象列表所代表的一樣。
** 輸入 u 來撤消最後執行的命令,輸入 U 來修正整行。**
---> Fiix the errors oon thhis line and reeplace them witth undo.
第三講第三節∶更改類命令
---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.
提示∶請注意 cw 命令不僅僅是替換了一個單詞,也讓您進入文本插入狀態了。
[number] c object 或者 c [number] object
下面我們繼續學習下一講。
第四講第二節∶搜索類命令
---> When the search reaches the end of the file it will continue at the start.
"errroor" is not the way to spell error; errroor is an error.
提示∶如果查找已經到達文件末尾瞎沖尺,查找會自動從文件頭部繼續查找。
** 輸入 :s/old/new/g 可以替換 old 為 new。**
---> the best time to see thee flowers is in thee spring.
第五講第一節∶在 VIM 內執行外部命令的方法
---> 提示∶ 所有的外部命令都可以以這種方式執行。
---> 提示∶ 所有的 : 命令都必須以 <回車> 告終。
** 要保存文件的部分內容,請輸入 :#,# w FILENAME **
第六講第二節∶游標後插入類命令
提示∶輸入大寫 A 的操作方法可以在行末插入文本,避免了輸入 i,游標定位到
最後一個字元,輸入的文本,<ESC> 回復正常模式,箭頭右鍵移動游標以及
x 刪除當前游標所在位置字元等等諸多繁雜的操作。
---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.
Vim 擁有一個細致全面的在線幫助系統。要啟動該幫助系統,請選擇如下三種方
法之一∶
輸入 :q <回車> 可以關閉幫助窗口。
提供一個正確的參數給":help"命令,您可以找到關於該主題的幫助。請試驗以
下參數(可別忘了按回車鍵哦。:)∶
:help w <回車>
:help c_<T <回車>
:help insert-index <回車>
:help user-manual <回車>
2. linux下vim 查找命令
linux下vim 查找命令:
/text --查找text, 按n查找下一個, N查找上一個
?text --查找text(反向查找), 按n查找下一個, N查找上一個
*/# --查找游標當前的單詞,相當於/text
:set ignorecase --查找忽略大小寫
:set noignorecase --查找不忽略大小寫
:nohlsearch --關閉當前的高亮顯示,當再次查找時恢復高亮
:set incsearch --逐步搜索模式,對當前鍵入的字元進行查找,不必等輸入完成
:set wrapscan --重新搜索,當搜索到文件頭或尾時,返回重新搜索
(2)vim命令手冊擴展閱讀:
1、文件窗口:
:open file --在當前窗口打開新文件
:split file --在新窗口打開文件
:new file --用新窗口打開文件,同 :split file
:bn --切換到下一個文件
:bp --切換到上一個文件
:args --查看當前打開的文件列表(當前正在編輯的文件會用[]括起來)
:e ftp://192.168.10.76/abc.txt
:e qadrive est.txt --打開遠程文件
:split --打開一個新窗口,游標停在頂層的窗口上
:new --打開一個新窗口,游標停在頂層的窗口上
:vsplit --橫向打開窗口。
Ctrl+ww --移動到下一個窗口
Ctrl+wj --移動到下方的窗口
Ctrl+wk --移動到上方的窗口
2、其他命令:
Esc/Ctrl+[ -- 鍵入命令
:!command --執行shell命令
:suspend/Ctrl+Z --掛起vim,回到shell,fg 返回vim
:!perl -c script.pl --檢查perl腳本語法,不用退出vim
:!perl script.pl --執行perl腳本, 不用退出vim
:help --顯示幫助文檔
:help i --顯示i的幫助文檔(:特殊鍵用<>, -t:啟動參數用-)
3、編輯命令:
插入:
i --在當前位置插入
A --在當前行尾插入
I --在當前行首插入
o --在當前行後插入一行
O --在當前行前插入一行
拷貝粘貼剪切:
yy --拷貝當前行
2yy --拷貝當前行開始的2行
p --在當前游標後粘貼
P --在當前行前粘貼
:1,10 co 20 --將1-10行插入到第20行之後。
:1,$ co $ --將整個文件復制一份並添加到文件尾部
v --進入選擇模式,相當於在Windows下按住 Shift選擇
V --進入選擇模式,整行選擇
ddp --交換當前行和其下一行
2dd --剪切當前行之後的2行
:1,10d --將1-10行剪切
:1, 10 m 20 --將第1-10行移動到第20行之後
替換:
ra --將當前游標所在字元替換為a
s/old/new/ --用old替換new,替換當前行的第一個匹配
s/old/new/g --用old替換new,替換當前行的所有匹配
%s/old/new/ --用old替換new,替換所有行的第一個匹配
%s/old/new/g --用old替換new,替換所有匹配
:10,20 s/^/text/g --在第10行到第20行每行前面加上text(:3,5 s/^/#/g --注釋3-5行, :3,5 s/^#//g
--解除3-5行的注釋, :1,$ s/^/#/g --注釋整個文檔, :%s/^/#/g --注釋整個文檔)
ddp --交換游標所在行和下一行
移動:
h --左移一個字元(5h --左移5個字元)
l --右移一個字元(5l --右移5個字元)
k --上移一個字元(5k --上移5個字元)
j --下移一個字元(5j --下移5個字元)
w --向後移動一個單詞(5w --向後移動5個單詞)
b --向前移動一個單詞(5b --向前移動5個單詞)
e --同 w ,游標停在單詞尾部
ge --同 e ,游標停在單詞尾部
^ --移動到本行第一個非空白字元
0 --移動到本行第0個字元
--同0
$ --移動到行尾(3$ --移動到下面3行的行尾)
gg --移動到文件頭(10gg --移動到第10行首)
[[ --同 gg
G --移動到文件尾(10G --移動到第10行尾)
]] --同 G
fx --移動到本行游標後第一個為x的字元(3fx --移動到本行游標後第3個為x的字元)
Fx --同 fx ,反向查找
:20 --跳到20行行首
Ctrl+e --向下滾動一行
Ctrl+y --向上滾動一行
Ctrl+d --向下滾動半屏
Ctrl+u --向上滾動半屏
Ctrl+f --向下滾動一屏
Ctrl+b --向上滾動一屏
撤銷:
u --撤銷
U --撤銷對整行的操作
Ctrl+r --撤銷剛才的撤銷
刪除:
x --刪除當前字元(3x --刪除當前游標開始向後三個字元)
X --刪除當前字元的前一個字元, 同 dh
dl --刪除當前字元, 同 x
dh --刪除前一個字元
dd --刪除當前行
dj --刪除上一行
dk --刪除下一行
10d --刪除當前行開始的10行。
D --刪除當前字元至行尾, 同 d$
kdgg --刪除當前行之前所有行(不包括當前行)
:1,10d --刪除1-10行
:11,$d --刪除11行及以後所有的行
:1,$d --刪除所有行
J--刪除兩行之間的空行, 合並兩行
退出
:wq --保存並退出
ZZ --保存並退出
:q! --強制退出並忽略所有更改
:e! --放棄所有修改,並打開原來文件
:close --關閉窗口,最後一個窗口不能使用此命令,可以防止意外退出vim
:q --如果是最後一個被關閉的窗口,那麼將退出vim
3. Linux緋葷粺涓璿im宸ュ叿甯哥敤鍛戒護澶у叏
鍦╨inux涓嬪仛寮鍙戱紝鐢氳嚦鏄鍙鍋氱$悊緇存姢宸ヤ綔錛屼篃灝戜笉浜哣im鐨勪嬌鐢ㄣ備綔涓轟竴涓鏂版墜錛屾垜涔熸槸鍒氬垰鎺ヨЕ錛屾湰鑺傚皢鎴戞棩甯鎬嬌鐢ㄦ垨鏀墮泦鐨刅im甯哥敤鍛戒護璁板綍涓嬫潵銆
褰撶劧錛岀洿鎺ュ湪鍛戒護琛屼笂杈撳叆錛歷imtutor錛屽氨鍙浠ュ︿範鍒癡im鐨勬墍鏈夊懡浠や簡銆俈im寰堝己澶э紝寰堝氱墰浜哄湪vim閲岄泦鎴愬緢澶氭彃浠朵粈涔堢殑錛屼絾榪欓噷鍙浠嬬粛鍩烘湰vim鍛戒護銆
縐誨姩鍛戒護
h "宸j "涓媖 "涓妉 "鍙硍 "鍏夋爣縐誨姩鍒頒笅涓涓鍗曡瘝鐨勯栧瓧絎 a word forwardb "鍏夋爣縐誨姩鍒頒笂涓涓鍗曡瘝鐨勯栧瓧絎e "鍏夋爣縐誨姩鍒頒笅涓涓鍗曡瘝鐨勫熬瀛楃ge "鍏夋爣縐誨姩鍒頒笂涓涓鍗曡瘝鐨勫熬瀛楃$ "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岃屽熬^ "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岀涓涓闈炵┖鐧藉瓧絎0 "灝嗗厜鏍囩Щ鍔ㄥ埌褰撳墠琛岀涓涓瀛楃
娉錛 榪欎簺鍛戒護闄や簡'0'鍛戒護浠ュ栭兘鍙浠ュ湪鍓嶉潰鎺ュ彈涓涓璁版暟錛2$錛涗笂闈㈡墍鏈夊懡浠ら兘鍙浠ュ湪鍓嶉潰鎺ュ彈涓浜涙搷浣滃懡浠わ紝濡俤$錛宒w絳夈
淇鏀瑰懡浠
x "鍒犻櫎涓涓瀛楃d "鍏跺悗璺熶換浣曚竴涓浣嶇Щ鍛戒護錛屽皢鍒犻櫎浠庡綋鍓嶅厜鏍囧埌浣嶇Щ緇堢偣澶勭殑鏂囨湰 "鍐呭癸紝濡俤w錛宒elete word c "涓巇鍛戒護鍔熻兘綾諱技錛屼笉鍚岀殑鍦ㄦ墽琛屽畬鍒犻櫎鍚庡懡浠よ繘鍘籌nsert妯″紡錛宑hange dd "鍒犻櫎涓鏁磋寉y "澶嶅埗涓鏁磋宲 "鎶婂壀璐存澘鍐呭圭矘甯栧埌褰撳墠浣嶇疆
vimdiff 1.c 2.c "鍒涘緩涓涓鍨傜洿鍒嗗壊紿楀彛姣旇緝榪欎袱涓鏂囦歡涓嶅悓鐨勫湴鏂
鎼滅儲鍛戒護
fa "鍗曞瓧絎︽悳緔錛宖a鏄鍦ㄥ綋鍓嶈屾悳緔涓嬩竴涓猘,find a/string "鍏ㄦ枃鏈鎼滅儲涓涓瀛楃︿覆錛屽傝佹壘鍒板崟璇"func"鍒欑敤/func "濡傛灉鏂囨湰鏈夊氫釜func,鎸変笅n灝變細縐誨姩鍒版帴涓嬫潵鐨刦unc浣嶇疆涓
"n鍓嶉潰涔熷彲浠ユ帴鍙楁暟瀛楄℃暟錛屽3n錛屽氨浼氭壘緔ф帴絎涓変釜func
?string "涓/string鐨勫姛鑳界浉鍚岋紝鍞涓鐨勫尯鍒灝辨槸鎼滅儲鐨勬柟鍚戠浉鍙
娉錛
鍙浠ョ敤錛歴et noingorecase 蹇界暐瀛楃﹀ぇ灝忓啓錛
/鍜岋紵鍛戒護閮芥湁璁板繂鍔熻兘錛屽彲浠ョ敤澶氭UP閿閫夋嫨鎼滅儲鍘嗗彶錛岃板綍鍛戒護鏈澶х殑鍘嗗彶鏉℃暟鍙浠ュ湪浼氳瘽viminfo涓婃洿鏀癸紱
鎼滅儲瀛楃.*/?%$^[]絳夌壒孌婂瓧絎﹁佸湪鍓嶉潰鍔犱竴涓鍙嶆枩鏉犺漿鎰忥紱
鎼滅儲鍒板ょ珛鐨勫崟璇嶏紝涔熷氨鏄鍓嶅悗閮芥病鏈夊叾浠栧瓧絎︾殑錛堥櫎浜嗙┖鏍礆紝鍒惰〃絎︼級,濡傚彧鎼渢he,涓嶆兂鎼滃埌there鎴杦hether榪欐牱鐨勶紝瑕佺敤//the/錛
鍙浠ョ敤:set hlsearch鎶婅佹悳緔㈢殑鍗曡瘝楂樹寒鏄劇ず錛
瀹氫綅鍛戒護
G "鍏夋爣縐誨姩鍒版枃浠剁殑鏈鍚庝竴琛岋紝鎴栬匰hift+G15G "鍏夋爣縐誨姩鍒版枃浠剁殑絎15琛岋紝鎴栬15gggg "鍏夋爣縐誨姩鍒版枃浠剁殑絎涓琛 45% "鍏夋爣縐誨姩鍒版枃浠45%澶凥 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑鏈寮濮婱 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑涓闂碙 "鍏夋爣縐誨姩鍒板綋鍓嶅睆騫曠殑鏈鍚
娉錛 CTRL+g鏌ョ湅褰撳墠鍏夋爣浣嶇疆
婊氬睆鍛戒護
CTRL+U "紿楀彛鍚戜笂婊氬崐灞廋TRL+D "紿楀彛鍚戜笅婊氬崐灞廋TRL+E "鍚戜笂婊氫竴琛岋紝娌″お澶у疄闄呮剰涔塁TRL+Y "鍚戜笅婊氫竴琛孋TRL+F "鍚戝墠婊氫竴鏁村睆CTRL+B "鍚戝悗婊氫竴鏁村睆zz "褰撳墠琛岀疆浜庡睆騫曚腑澶畓t "褰撳墠琛岀疆浜庡睆騫曢《絝痾b "褰撳墠琛岀疆浜庡睆騫曞簳絝
鍒嗗壊紿楀彛
:split "妯鐫鍒嗗壊:new "妯鐫娣誨姞涓涓鏂扮獥鍙:vsplit "絝栫潃鍒嗗壊:vnew "絝栫潃娣誨姞鏂扮獥鍙CRTL+W w "鎸夐『搴忓垏鎹㈠皬紿楀彛:qall "鍏抽棴鎵鏈夌獥鍙:wall "淇濆瓨鎵鏈夌獥鍙
鏍囩(tab)鍛戒護
:tabedit filename "鍦ㄦe湪緙栬緫鐨剉im紿楀彛寤轟竴涓鍙玣ilename鐨則ab欏:tab split "鏂板緩涓涓猼ab欏礸t "縐誨姩鍒頒笅涓涓猼ab欏礸T "縐誨姩鍒頒笅涓涓猼ab欏