linux--vi和vim的詳細使用

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 編碼方式的轉換

  1. 在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式
:set fileencoding=utf-8
  1. enconv 轉換文件編碼,比如要將一個GBK編碼的文件轉換成UTF-8編碼,操作如下
enconv -L zh_CN -x UTF-8 filename
  1. iconv 轉換,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile

在這裏插入圖片描述在這裏插入圖片描述

選項和參數:
在這裏插入圖片描述

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