Linux下的編輯器――vi大全(轉)
xp
交換兩個字元位置
ddp
上下兩行調換
J
上下兩行合併
dG
刪除所有行
d$
從當前位置刪除到行尾
y$
從當前位置複製到行尾, 如果要貼上到其他地方 p 就可以了
:ab string strings
例如 ":ab usa United States of America" ,
當你在文見裡插入 usa 時
United States of America 就蹦出來了
:g/^/m0
把檔案內容反轉
:map keys new_seq
定義你當前 鍵盤命令
:set [all]
vi or ex 的編輯狀態
如 顯示每行 :set nu
:X
然後系統會提示輸入密碼, 輸入密碼後存檔退出, 儲存後就加密了
下次編輯時使用vi -x filename, 系統會提示你輸入密碼
在命令狀態下,nyy表示複製從游標行起的下n行內容,p表示paste,貼上下來在游標處。
我常用到的單個字元替換用r,覆蓋多個字元用R,用多個字元替換一個字元用s,整行替換用S
:%s/old_word/new_word/g
這個指令是於在整個檔案中替換特定字串
將游標移到第n行,按下 mk
將游標移到第m行,按下 "ay'k
即將第n到m的行存到a暫存器,以此類推,b,c........暫存器等
不好意思,補充一下,想貼上到某處,直接將游標移到某地,按下 ‘ap 即可
刪除命令操作
d l 刪除當前字元(與x命令功能相同)
d 0 刪除到某一行的開始位置
d ^ 刪除到某一行的第一個字元位置(不包括空格或TA B字元)
d w 刪除到某個單詞的結尾位置
d 3 w 刪除到第三個單詞的結尾位置
d b 刪除到某個單詞的開始位置
d W 刪除到某個以空格作為分隔符的單詞的結尾位置
d B 刪除到某個以空格作為分隔符的單詞的開始位置
刪除命令操作
d 7 B 刪除到前面7個以空格作為分隔符的單詞的開始位置
d) 刪除到某個語句的結尾位置
d 4) 刪除到第四個語句的結尾位置
d( 刪除到某個語句的開始位置
d } 刪除到某個段落的結尾位置
d { 刪除到某個段落的開始位置
d 7 { 刪除到當前段落起始位置之前的第7個段落位置
d d 刪除當前行
d /t e x t 刪除從文字中出現“ t e x t”中所指定字樣的位置,一直向前直到下一個該字樣所出現的
位置(但不包括該字樣)之間的內容
d fc 刪除從文字中出現字元“c”的位置,一直向前直到下一個該字元所出現的位置(包括
該字元)之間的內容
d tc 刪除當前行直到下一個字元“ c”所出現位置之間的內容
D 刪除到某一行的結尾
d $ 刪除到某一行的結尾
5 d d 刪除從當前行所開始的5行內容
d L 刪除直到螢幕上最後一行的內容
d H 刪除直到螢幕上第一行的內容
d G 刪除直到工作快取區結尾的內容
d 1 G 刪除直到工作快取區開始的內容
修改命令操作
c l 更改當前字元
c w 修改到某個單詞的結尾位置
c 3 w 修改到第三個單詞的結尾位置
c b 修改到某個單詞的開始位置
c W 修改到某個以空格作為分隔符的單詞的結尾位置
c B 修改到某個以空格作為分隔符的單詞的開始位置
c 7 B 修改到前面7個以空格作為分隔符的單詞的開始位置
c 0 修改到某行的結尾位置
c) 修改到某個語句的結尾位置
c 4) 修改到第四個語句的結尾位置
c( 修改到某個語句的開始位置
c } 修改到某個段落的結尾位置
c { 修改到某個段落的開始位置
c 7 { 修改到當前段落起始位置之前的第7個段落位置
c tc 修改當前行直到下一個字元c所出現位置之間的內容
C 修改到某一行的結尾
c c 修改當前行
5 c c 修改從當前行所開始的5行內容
替換命令操作
s 將當前字元替換為一個或多個字元
S 將當前行替換為一個或多個字元
5 s 將從當前字元開始的5個字元替換為一個或多個字元
下載
vi替換使用規則:
:g/s1/s/s2/s3/g
第一個g表示對每一個包括s1的行都進行替換,第二個g表示對每一行包括s1的行所有的s2都用s3替換
s表示替換,s2是要被替換的字串,他可以和s1相同(如果相同的話用//代替),s3是替換字串
fx
往右移動到 x 字元上
Fx
往左移動到 x 字元上
tx
往右移動到 x 字元前
Tx
往左移動到 x 字元後
(注意:以上四個命令中,其中x是鍵入的字元)
;
分號,配合 f 和 t 使用,重複一次
,
逗號,配合 f 和 t 使用,反方向重複一次
建議誰把 :set all 出來的引數及其用法說明一下。注意註明UNIX平臺,我發現幾個平臺下有些差異。
加密碼我在8 上(bsh) 實驗成功 所以大家最好還是加上 環境!!
vi 環境選項 Solaris ksh
noautoindent nomodelines noshowmode
autoprint nonumber noslowopen
noautowrite nonovice tabstop=8
nobeautify nooptimize taglength=0
directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags
noedcompatible prompt tagstack
noerrorbells noreadonly term=vt100
noexrc redraw noterse
flash remap timeout
hardtabs=8 report=5 ttytype=vt100
noignorecase scroll=11 warn
nolisp sections=NHSHH HUuhsh+c window=23
nolist shell=/bin/ksh wrapscan
magic shiftwidth=8 wrapmargin=0
mesg noshowmatch nowriteany
For C-Shell:
setenv EXINIT "set nu"
For Bourne or Korn Shell:
EXINIT="set nu"; export EXINIT
For Korn Shell Only (alternate method):
typeset -x EXINIT="set nu"
在 .profile 裡設定 vi 的環境選項 , 以上均測試過
怎麼沒有介紹標記的,做標記對那種大的程式檔案閱讀十分有幫助。
建議大家使用。
標記文字
mchar 用字母char標記當前游標的位置
`char 移至char所標記處
'char 移至char標記所在行的開頭處
" 移至當前行上一次所在位置(在游標移動之後)??一個雙引號
'' 移至當前行上第一次所在位置的行的開頭處(在游標移動之後)??兩個單引號
.重複上一次修改!
大家都說了這麼多了,我也來說兩句
在當前螢幕中
H 跳到第一行
M 跳到中間一行
L 跳到最後一行
同時vi多個檔案時,CTRL-SHIFT-6回到上一個檔案,在本次vi的檔案和上次vi的檔案之間切換。其實就是一些文件寫的 ^^
但是我發現一個BUG:在用CTRL-SHIFT-6切換到上一個檔案後,用:args檢視多檔案vi狀態時,螢幕底部仍然顯示目前vi的是剛才的檔案。
(在HP-UX,Solaris,AIX上透過)
還是使用
:e#
切換比較好,呵呵
%s/^/要加的內容/g 要在文字後同樣的字元加
%s/$/要加的內容/g vi的使用確實太多,大家多多總結交流!!!
追加到緩衝區
對於已經有內容的緩衝區,可以繼續追加內容在其後面,例如:
"Ad4w 刪除游標後4個字,並附加到緩衝區a
"Ay) 取樣從游標到檔案尾的內容,並附加到緩衝區a
"K3yy 取樣從游標所在行起的3行內容,並附加到緩衝區k
注意:在追加緩衝區的命令中,原緩衝區的名字一定要大寫,才能將內容追加進去,否則是覆蓋原緩衝區的內容。追加內容在原緩衝區末尾另起一行。
清理掉DOS文字中的^M可以在:1,$s/^M//g,其中^M是CTRL+V, CTRL+M。
刪除從當前行開始到最後一行的所有內容
:.,$d
在:命令列模式下,首先可以確定命令的範圍
.表示當前行;數字表示行號,如1表示第一行,2表示第二行;$表示最後一行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939770/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux下vi編輯器命令大全Linux
- Linux下字元介面文字編輯器 vi(轉)Linux字元
- Linux 退出Vi編輯器Linux
- linux中vi編輯器的使用Linux
- linux命令之vi文字編輯器Linux
- Linux系統下都vi文字編輯器如何使用?Linux
- vi編輯命令(轉)
- AIX VI編輯器AI
- 12 vi編輯器
- 【linux下vi命令大全】Linux
- linux下vi命令大全Linux
- Linux– 檔案編輯器 vi/vim(1)Linux
- VI編輯器基本教程
- Linux VI編輯命令使用Linux
- vi編輯器相關命令
- Vi/Ex編輯器教程[4]
- Vi/Ex編輯器教程[3]
- Vi/Ex編輯器教程[2]
- Vi/Ex編輯器教程[1]
- 簡單的介紹UNIX下的常用編輯工具VI(轉)
- Linux-vi編輯器開發必備操作Linux
- linux vi編輯器中 快捷鍵上下翻頁Linux
- 好程式設計師分享Linux重器vi編輯器程式設計師Linux
- Linux循序漸進(23):Vi的編輯操作及命令(轉)Linux
- CentOS7 vi編輯命令【轉】CentOS
- Unix vi編輯器命令總結
- linux下用vi,vim編輯時退出編輯模式(wq)無法儲存退出Linux模式
- Linux Vi編輯器的三種模式分別指什麼?Linux模式
- 快速上手Linux核心命令(六):Linux的文字編輯器vi和vimLinux
- Linux下vi的用法(轉)Linux
- 使用 Vi/Vim 編輯器:基礎篇
- UNIX系統都會提供的螢幕編輯器-vi的使用(轉)
- vi和vim的編輯模式模式
- 使用vi文字編輯器及Linux複製貼上小技巧Linux
- 雲端計算開發入門課程:Linux重器 vi編輯器Linux
- Linux 命令列下的最佳文字編輯器Linux命令列
- 在Docker容器內執行 vi 編輯器 | BaeldungDocker
- VSCode編輯器快捷鍵大全VSCode