《鳥哥的linux私房菜 基礎篇》第十章讀書筆記---vim程序編輯器

VIM程序編輯器
如果想要多次移動的話,例如向下移動30行,可以使用“30j”或“30向下的箭頭”。

移動光標:
ctrl+d 屏幕向下移動半頁
ctrl+u 屏幕向上移動半頁

+  光標移動到非空格的下一行
 -  光標移動到非空格的上一行

n<space> 按下一個數字n,比如20,然後按下空格鍵,光標就會想右移動這一行的n個字符

0或功能鍵[home]  移動到這一行的最前面字符處
$或功能鍵[end]     移動到這一行的最後面字符處

H  光標移動到這個屏幕的最上方那一行的第一個字符
M  光標移動到這個屏幕的中央那一行的第一個字符
L  光標移動到這個屏幕的最下方那一行的第一個字符

G           移動到這個文件的最後一行
nG或:n   n爲數字,移動到這個文件的第n行。也可以用:n
gg          移動到這個文件的第一行,相當於1G
N[enter]  n爲數字,光標向下移動n行

查找與替換:
/word    向下查找一個名稱爲word的字符串
?word    向上查找一個名稱爲word的字符串
n           字母n,表示重複前一個查找的操作
N          大寫N,和n相反,表示“反向”進行前一個查找操作

:n1,n2s/word1/word2/g   :n1,n2爲數字,在第n1行與n2行之間尋找word1字符串,並將該字符串替換爲word2.例如,在100到200行之間查找vbird並替換成VBIRD,則爲:100,200s/vbird/VBIRD/g
:1,$s/word1/word2/g      : 從第一行到最後一行查找word1,並將該字符串替換爲word2
:1,$s/word1/word2/gc     :從第一行到最後一行查找word1,並將字符串替換爲word2,且替換前顯示提示字符給用戶確認是否替換

刪除,複製與粘貼:
nx      n爲數字,連續向後刪除n個字符。連續刪除10個字符,10x
dd      刪除光標所在那一整行
ndd    n爲數字,刪除光標所在的向下n行。
d1G    刪除光標所在到第一行的數據
dG      刪除從光標所在到最後一行的所有數據
d$      刪除從光標所在處到改行的最後一個字符
d0      d和數字0,刪除從光標所在處到該行的最前面的一個字符

yy      複製光標所在的那一行
nyy    n爲數字,複製光標所在的向下n行
y1G,yG,y$,y0  將刪除部分的d1G,dG,d$,d0中的d改成y,就變成了相應的賦值

p和P   小寫p爲將已複製的數據在光標下一行粘貼,大寫P則爲粘貼在光標上一行

Undo與Redo:
u                        復原前一個操作,undo
ctrl+r                  重做上一個操作,redo
   .                      小數點,重複上一個操作
N <command>    重複某個命令command N次

切換到編輯模式:
i, I    進入插入模式。i爲從目前光標所在處插入,I爲在目前所在行的第一個非空格符處開始插入
a,A   進入插入模式。a爲從目前光標所在的下一個字符處開始插入,A從光標所在行的最後一個字符處開始插入
o,O   進入插入模式。小寫o爲在目前光標所在的下一行插入新的一行;O爲在目前光標所在處的上一行插入新的一行
r,R    進入替換模式。r只會替換光標的那個字符一次,r只有效一次。R會一直替換光標所在的文字,直到按下esc鍵爲止。R一直有效,直到按下esc 

命令行的保存,離開等
:w, :w!  保存,加!爲強制保存(爲只讀時),但還是跟訪問權限有關
:q, :q!   退出vim/vi,!強制退出,不保存
:wq       保存並退出
ZZ         若文件沒有更動,則不保存離開;若文件已被更動,則保存後離開

:w [filename]   另存爲filename
:r [filename]    在編輯數據時,讀入另一個文件filename的數據,,將其內容加入到光標所在行後面
:n1,n2,w [filename]   將n1到n2行的內容保存成filename的文件

:! command   暫時離開vi到命令行模式下執行command的顯示結果。例如,“:! ls /home”即可再vi當中查看/home下面以ls輸出的文件信息


在用vim編輯時,它會在被編輯的文件的目錄下再新建一個名爲.filename.swp的文件。
vim的不正常中斷,導致暫存盤無法通過正常流程來結束,所以暫存文件就不會消失,而繼續保留下來‘

在用R(ecover)選項後,並不會刪除那個swp文件,離開vim後還要自行刪除。

塊選擇(Visual Block)
v          小寫v,字符選擇,會將光標經過的地方反白選擇
V          大寫V,行選擇, 會將光標經過的地方反白選擇
ctrl+v    塊選擇,可以用長方形的方式選擇數據
y          將反白部分複製起來
d          將反白部分刪除

粘貼的時候是以塊來粘貼的,即粘貼在某個“塊的範圍”內,而不是以行爲單位來處理你的整份文件。

多文件編輯
vim後同時接好幾個文件可以同時打開。
:n       編輯下一個文件
:N       編輯上一個文件
:files   列出目前這個vim的打開的所有文件

多窗口功能
:sp {filename}    加filename則是在新窗口中啓動另一個文件,直接輸入:sp時,出現的則是同一文件在兩個窗口間。
ctrl+w+向上箭頭,ctrl+w+向下箭頭   在兩個窗口之間移動
ctrl+w+q  即爲:q,結束,離開

vim會主動將你曾經做過的行爲記錄下來,好讓你下次可以輕鬆作業,這個記錄操作的文件是:~/.viminfo

vim的環境設置參數有很多,如果想知道目前的設置值,可以在一般模式時輸入:set all來查閱。不過設置選項很多

:set nu       顯示行號,設置後,會在每一行的前綴顯示改行的行號
:set nonu   取消行號

:set autoindent  設置自動縮排
:set noautoindent  不縮排

:set ruler  顯示/不顯示右下角的狀態欄說明

:syntax on
:syntax off  是否依據程序相關語法顯示不同顏色

爲了避免每次使用vim時都重新設置一次參數,我們可以通過配置文件來直接規定。整體vim的設置值一般是放置在/etc/vimrc文件中,但不建議修改它。可以通過修改~/.vimrc文件,不過它默認不存在,需要自己創建,裏面寫上所希望的設置值。

在DOS中使用的斷行符爲^M$,稱爲CR與LF兩個符號。而在linux下面,則是僅有LF($)這個斷行符
在shell裏面,這樣的CR在裏面就會出現錯誤
將dos格式轉換成linux的:
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
-k : 保留該文件原本的mtime時間格式(不更新文件上次內容經過修訂的時間)
-n : 保留原本的舊文件,將轉換後的內容輸出到新文件

語系編碼轉換:
iconv --list
iconv -f 原本編碼 -t 新編碼 filename [-o newfile]
--list : 列出iconv支持的語系數據
-f     :from, 後接原本的編碼格式
-t     :  to, 即後來的新編碼的格式
-o file : 如果要保留原本的文件,那麼使用-o 新文件名,可以建立新編碼文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章