vi入門
1.1 三種模式
命令模式,編輯模式,末行模式。
切換方式:
命令模式→ i、a、o →編輯模式(i、a、o)編輯模式→ esc →命令模式,命令模式→ :→末行模式。
1.2.功能
命令模式(command mode):控制游標移動,刪除字元,段落複製,等其它功能。
編輯模式(insert mode): 新增文字及修改文字。
末行模式(last line mode):儲存檔案,離開vi,以及其他設定。
1.21 命令模式(1)
基本編輯指令
x :刪除游標所在處的字元
x :刪除游標前的字元
dd :刪除游標所在行,*dd從游標所在行向下刪除*行(3dd)
d :刪除游標所在處到行尾
s :刪除游標所在字元,並進入輸入模式.
s :刪除游標所在的列,並進入輸入模式.
r :取代游標處的乙個字元
r :從游標處向後替換,按esc結束
u :取消上步的操作
u :取消目前的所有操作
yy :複製游標所在行
p :將複製的內容放在游標所在行的下行
v :字元反白選中顯示(配合d、y刪除與複製操作)
v :行反白選中顯示(配合d、y刪除與複製操作)
1.22.命令模式(2)
游標移動指令-1
0 :移動到游標所在列的最前面 [home]
$ :移動到游標所在列的最後面 [end]
gg :將游標移動到文章的首行
g :將游標移動到文章的尾行
w或w :將游標移動到下一單詞
h :將游標向左移動一格
l :將游標向右移動一格
j :將游標向下移動一格
k :將游標向上移動一格
h :移動到視窗的第一列
m :移動到視窗的中間列
l :移動到視窗的最後列
b :移動到前一字的第乙個字母
w :移動到下一字的第乙個字母
e :移動到下個字的最後乙個字母
^ :移動到游標所在列的第乙個非空白字元
1.23 命令模式(3)
l游標移動指令-2
fx :往右移動到 x 字元上
fx :往左移動到 x 字元上
tx :往右移動到 x 字元前
tx :往左移動到 x 字元前
; 配合 fx 使用,正方向重複一次
, :配合 fx 使用,反方向重複一次
/* :往右移動到有*的地方,*為任意字元,可使用轉義字元
?* :往左移動到有*的地方,*為任意字元,可為單詞數字
n :配合 /* 使用,正方向重複一次
n :配合 /* 使用,反方向重複一次
1.24 命令模式(4)
l游標移動指令-3
n- 減號移動到上一列的第乙個非空白字元前面加上數字可以指定移動到以上 n 列.例如:4-
n+ 加號移動到下一列的第乙個非空白字元前面加上數字可以指定移動到以下 n 列.例如:4+
ng 直接用數字 n 加上大寫 g 移動到第 n 列
n( 左括號移動到句子的最前面句子是以前面加上數字可以指定往前移動 n 個句子 ! . ? 三種符號來界定
n) 右括號移動到下個句子的最前面前面加上數字可以指定往後移動 n 個句子 ! . ? 三種符號來界定
n 前面加上數字可以指定往前移動 n 個段落右括弧移動到下個段落的最前面前面加上數字可以
1.3 末行模式
e :建立新檔案(e file.sh)
n :載入新檔案(n file.sh)
w :儲存檔案
q :結束編輯並退出
wq :儲存退出
! :強行操作(空格之後加上unix命令,可以操作其它系統命令)
w! :強行儲存檔案
q! :強行退出,不存檔而要放棄編輯過的檔案
wq! :強行儲存並退出(x都有此功能)
set nu :顯示行號
set nonu :不顯示行號
1.4其他內容
:1,$s/^/*/ 在檔案的第一行至最後一行的行首插入*(任意字元)
:3,$s/^/*/ 在檔案的第三行至最後一行的行首插入*(任意字元)
:s/$/*/g 在整個檔案每一行的行尾新增「some string」。
:s/*/*/g 在整個檔案中替換前者*替換後者*
:3,7s/*/*/ 僅替換檔案中的第3行到第7行中的*
注意: 其中s為substitute(代替),%表示所有行,g表示global。
/* / :搜尋功能,*代表任意字串。(/
/)正規表示式:1,$s/被替換內容/替換內容/g。(1,$s/
/\r/g)
1.5搜尋及替換命令
/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替換
選項設定
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的輸出結果放到當前行
Vi編輯器入門
插入模式 insert mode 鍵入i,意為insert 開啟檔案vi file name vi是呼叫編輯器,編輯新舊檔案所用的命令 退出檔案 q 或 wq 或 zz 或 q 其它雜項命令 解釋命令 顯示vim安裝目錄 echo vimruntime 顯示行號 set nu 設定語法 set sy...
Vi編輯器入門
vi編輯器是所有unix及linux系統下標準的編輯器,類似於windows上的記事本!1 vi的基本概念 基本上vi可以分為三種狀態,分別是命令模式 command mode 插入模式 insert mode 和底行模式 last line mode 各模式的功能區分如下 1 命令列模式comma...
Vi編輯器入門
vi編輯器是所有unix及linux系統下標準的編輯器,類似於windows上的記事本!1 vi的基本概念 基本上vi可以分為三種狀態,分別是命令模式 command mode 插入模式 insert mode 和底行模式 last line mode 各模式的功能區分如下 1 命令列模式comma...