vi
1 常用按鍵組合
1.1 光標移動
- 【page down】 下一頁
- 【page up】上一頁
- 【home】光標移動到該行第一個字符
- 【end】光標移動到該行最後一個字符
- 【G】該文件最後一行
- 【gg】該文件首行
1.2 搜尋和取代
- /word 向光標之下尋找一個叫word的字符串
- ?word 向光標之上尋找一個叫word的字符串
- 【n】重複上一個搜尋動作
- 【N】和n相反,表示反向進行上一個動作
- :n1,n2s/word1/word2/g 在n1和n2行之間尋找word1這個字符串,並將其取代爲word2
- :1,$s/word1/word2/g 在全文尋找word1這個字符串,並將其取代爲word2
- :1,$s/word1/word2/g 在全文尋找word1這個字符串,並提示用戶是否將其取代爲word2
1.3 刪除 複製粘貼(在非編輯狀態下)
- 【dd】刪除遊標所在的一整行。
- 【ndd】向下刪除n行。
- 【d1G】刪除光標所在到第一行的所有數據。
- 【dG】刪除光標所在到最後一行的所有數據。
- 【yy】複製遊標所在的那一行。
- 【u】復原上一個動作,也就是撤回。
- 【CTRL+r】重複上一個動作。
1.4 指令列模式下的常用按鈕
- 【ZZ】 文件沒有更動,則不存儲離開,如果有改變,則保存後離開。
- 【:w [filename] 】將編輯後的內容保存成另一個文件。
- 【:r[filename] 】將該文件內容寫入到從遊標所在位置開始的後面。
- 【:n1,n2 w [filename] 】將n1行到n2行的內容存儲成filename這個文件。
vim
1 同時編輯多文本文件
vim 文件1 文件2
:n 切換到下一個文件
:N 切換到上一個文件
:files 列出這個vim正在編輯的所有文件
2 分區窗口
也就是說,一個窗口顯示多個文件或者一個文件分區顯示
vim file1
:sp[filename] 開啓新分區打開文件,如果不寫filename 默認將該文件再次打開。
【ctrl+w+向上箭頭/向下箭頭】 光標在文件之間的切換。
【ctrl+w+q】 結束離開該分區,或者直接保存退出。
如下:
3 補全功能
ctrl+x -> ctrl+n 內容補全(文件中反覆出現的,會有提示)。
ctrl+x -> ctrl+o 以擴展名作爲語法補充,以vim內建的關鍵字予以補充。
vim 環境設定和記錄: ~/.vimrc,~/.viminfo
我們每次的vim操作都會記錄在~/.viminfo
中。
vim的設置一般放在/etc/vimrc
下,但是一般不建議去修改它,而是在~
目錄下新建.vimrc
在這裏說幾個常用的vim設定:
:set nu 設置行號
:set nonu 取消行號
vi和vim的中文亂碼問題
要考慮的地方:
1 首先linux系統默認支持的語系數據 查看 /etc/locale.conf。
2 你的終端界面(bash)的語系,這與LANG和LC_ALL這幾個變數有關。
3 你的文件原來的編碼方式。
4 開啓終端機的軟件,例如在GNOME底下的窗口接口。
一般出現的問題都在3和4上,3和4的編碼不一致導致。
4的問題的修改,比如目前文件的編碼是big5,那麼修改終端機軟件的編碼如下:
編碼方式的轉換
1首先查看該文件的編碼方式
方式1:
在vim下使用
:set fileencoding
如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問題,那麼你可以在~/.vimrc
文件中添加以下內容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照 fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。
方式2:
enca (如果你的系統中沒有安裝這個命令,可以用sudo yum install -y enca
安裝 )查看文件編碼
2 編碼方式的轉換
- 在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
- enconv 轉換文件編碼,比如要將一個GBK編碼的文件轉換成UTF-8編碼,操作如下
enconv -L zh_CN -x UTF-8 filename
- iconv 轉換,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
選項和參數: