首頁  >  文章  >  php教程  >  vi 命令大全

vi 命令大全

高洛峰
高洛峰原創
2016-12-12 16:41:211496瀏覽

Vi的3種運行模式

普通(normal)模式,又稱命令模式

插入(insert)模式

命令列(cmdline)模式

進入Vi後首先進入的是普通模式,ViVidline)ViVi編輯指令輸入,也就是此時輸入的字母都會被當作命令來解釋。
在普通模式下,輸入插入命令i、附加命令a、打開命令o等進入插入模式,在插入模式下用戶輸入的任何字符都被Vi當作文件內容保存起來,並顯示在屏幕。在文字輸入過程中,按Esc鍵返回普通模式。
在普通模式下,執行Ex指令使用:,找出使用?和/,呼叫Shell指令使用!。末行指令執行完後,Vi自動回到普通模式。

一、普通模式下的操作

進入插入模式

i    遊標前插入   I    光標行首插入後     遊標所在行下插入一行,行首插入
O    遊標所在行上插入一行,行首插入


遊標定位

G    移至最後一行行首

nG    移至前一行行首

nG    移至第一行行首

nG  『   上移n行,行首

n$    下移n行(1表示本行),行尾

0    所在行行首

$    所在行行首

h,j,k, l  左移,下移,上移,右移

H    當前屏幕首行行首

M    螢幕首行行首

M    屏幕顯示文件的中間行頭

rc    用c替換遊標所指向的字元

nrc    用c替換遊標所指向的前n個字元


x    光標處刪除光標處的字元

x    光標處的字元。

dw    若光標處在某個字的中間,則從遊標所在的位置開始刪至詞尾(連同詞後的若干空格,製表符)

ndw    刪除遊標所在的單字開始的n個單字(第一個單字從遊標所處的字元開始刪除)

db    遊標所在單字的前一個字元至單字的首字

ndb    刪除遊標所在的單字前標🀜的單字。 刪除目前行及其後n-1行

dG    刪除目前行到最後一行

d1G    刪除目前行到第一行

d$ 

d,左箭頭刪除遊標處的前一個字元

d,右箭頭刪除遊標處的字元

d,上箭頭刪除目前行和上一行

d,下箭頭刪除目前行和下一行

複製和貼上

yy    當前行複製到緩衝區

nyy    目前開始的n行複製到緩衝區

yG    光標所在緩衝區

yG    光標所在緩衝區

yG  〜 遊標所在行至最後一行。區

y $    遊標所在位置到行尾複製到緩衝區

y0    遊標所在位置的前一個字元到行首複製到緩衝區

p 〜＀〜 /str    往右移動到有str的地方

?str    往左移動到有str的地方

n    『向相同的方向移動到有str的地方

n    〜向相反的方向移動

N  〜 〜〜向相反的方向移動和反面

U    取消前一次的誤操作或不合適的操作對文件造成的影響

.    再執行一次前面剛完成的某個命令


退出Vi

ZZ  〜的操作

跳行

:n    跳轉到第n行

字串搜尋與替換

:/str/  『 〜 〜 〜 〜 〜 〜 〜 〜 〜〜)。          從當前往左移動到有str的地方

:/str/w file        將包含有str的行寫到檔案file中

:/str1/,/str2/w file[str  文件中


:s/str1/str2/      將找到的第一個str1替換為str2  

:s/str2/str2/g   㟀『2/strnstrnstrnstrnstrnstrnstrnstrnid str2/g    將從n1行至n2行找到的所有的str1替換為str2

:1,.s/str1/str2/g      將從第1行替換為當前行的所有str1,str. $s/str1/str2/g      將從所有行至最後一行的str1替換為str2

:%s/str1/str2/g       〠 將從第1行至最後一行的所有str1替換為str2,並在替換前詢問

:12,23s/^/#/      12~23行前加#

:%s= *$==         所有行末多餘空格刪除

:g/^s*$/d        將所有不包含字元(空格的複製、移除)刪除

:n1,n2 co n3    將n1行至n2行複製到n3後面

:n1,n2 m n3 『  將n  刪除目前行

:nd         刪除第n行

:n1,n2 d      刪除n1行至n2行

:.,$d      〜/str/str止的內容

檔案相關指令

:w       目前編輯的內容存盤

:w file     當前編輯的內容存到file13535,313號:nw file     第n行寫到檔案file中


:1,.w file    從第1行至當前行寫到file中

:.,$w file    從目前行至最後一行寫到file中🀀 〜 一個檔案file

:e file      新建file檔案

:f file       目前檔案改名為file『 運行Shell指令Cmd

:n1,n2 w !Cmd   將n1行至n2行做為Cmd指令的輸入,若不指定行則整個檔案做為Cmd的輸入

:r !Cmd       將指令運行的結果寫入遊標所在行的下一行(Vi環境

:set autoindent      自動縮進

:set noautoindent     〕行

🀕 set nonumber      不顯示行號

:set ruler          在螢幕底部顯示光標所在的行,列位置

:set noruler        不顯示行,列位置


:set tabstop=value   〜邊的空格設定顯示製表符的空格顯示個數位顯示器的空格。輸入進入所設定的頁邊時,編輯器自動回車換行

:set                       顯示設定的所有選項🀜

退出Vi

:q    退出


:qw   保存退出

:q!    不保存退出

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn