vi 和 vim 是 linux 中的文字編輯器。vi 是老式的文字編輯器,功能齊全,vim 可以認為是 vi 的高階版本。
在 linux 中有些操作是需要在命令列中完成的,此時如果還要使用圖形介面的文字編輯器,就會有些不合時宜了,所以就需要乙個功能齊全的文字編輯器來完成我們的操作。從這裡來看,學習 vi 和 vim 是有必要的:
三種模式的切換為:
移動游標h
游標向左移動,對應於方向鍵
j游標向下移動,對應於方向鍵
k游標向上移動,對應於方向鍵
l游標向右移動,對應於方向鍵
ctrl+f
螢幕向下移動一頁,相當於 page down
ctrl+b
螢幕向上移動一頁,相當於 page up
ctrl+d
螢幕向下移動半頁
ctr+u
螢幕向上移動半頁
+游標移動到非空格符的下一行
-游標移動到非空格符的上一行
n+space
n 為數字,游標會向後面移動 n 個字元
0/home
移動到這一行的最前面字元處
$/end
移動到這一行的最後面字元
h游標移動到這個螢幕的最上方那一行的第乙個字元
m游標移動到這個螢幕的**那一行的第乙個字元
l游標移動到這個螢幕的最下方那一行的第乙個字元
g移動到這個檔案的最後一行
n+g移動到這個檔案的第 n 行
gg移動到這個檔案的第一行
n+enter
游標向下移動 n 行
查詢與替換
/word
從游標後開始查詢名稱為 word 的字串
?word
向游標前開始查詢名稱為 word 的字串
n字母 n,重複前乙個查詢的操作
n與 n 相反,為反向進行前乙個查詢操作
:n1,n2s/word1/word2/g
在第 n1 行與第 n2 行之間尋找字串 word1,並將字串替換為 word2
:1,$s/words/words/gc
在第一行和最後一行之間尋找字串 word1,並將字串替換為 word2,並提示使用者確認操作
刪除,複製和貼上
x/xx 為向後刪除乙個字元,x為向前刪除乙個字元
nx連續向後刪除 n 個字元
dd剪下游標所在的那一行
ndd剪下游標所在的向下 n 行
d1g剪下游標所在到第一行的所有資料
dg剪下游標到最後一行的所有資料
d$剪下游標所在處到該行的最後乙個字元
d0剪下游標所在處到該行的最前面乙個字元
yy複製游標所在的那一行
nyy複製游標所在的向下 n 行
y1g複製游標所在行到第一行的所有資料
yg複製游標所在行到最後一行的所有資料
y0複製游標所在的那個字元到該行行首的所有資料
y$複製游標所在的那個字元到該行行尾的所有資料
p/pj
將游標所在行與下一行的資料結合成同一行
c重複刪除多個資料
u恢復上乙個操作
ctrl+r
重做上乙個操作
.重複上乙個操作
進入插入或替換的編輯模式
i/i進入(insert)模式
i 為從目標游標所在處插入,i 為在目前所在行的第乙個非空格符處開始插入
a/a進入(insert)模式
a 為從目前游標所在的下乙個字元處開始插入,a 為從游標所在處的最後乙個字元處開始插入
o/o進入(insert)模式
r/r進入(replace)模式
r 為替換游標所在的那乙個字元一次,r 為一直替換游標所在的文字,直到 esc 為止。
esc回到一般命令模式
命令列模式的儲存,退出等命令:
:w將編輯的資料寫入到硬碟中
:w!強制寫入
:q退出 vi
:q!強制退出 vi,不儲存
:wq儲存後退出
:wq!
強制儲存後退出
zz若檔案沒有沒有修改,則不儲存退出,若檔案已經被修改過,則儲存後退出
:w filename
將編輯的資料另存為乙個檔案
:r filename
在編輯的資料中,讀入另乙個檔案的資料,即將 filename 內容載入到游標所在行後面
:n1,n2 w filename
將 n1 到 n2 的內容儲存為 filename 這個檔案
:! command
暫時退出 vi 到命令列模式下執行 command 的顯示結果
:set nu
顯示行號
:set nonu
取消行號
v字元選擇,會將游標經過的地方反白選擇
v行選擇,會將游標經過的行反白選擇
ctrl+v
可視區塊,可以用矩形的方式選擇資料
y將反白的地方複製起來
d將反白的地方刪除掉
p將剛剛複製的區塊,在游標所在處貼上
可視區塊的功能提供給我們了乙個新的思路,對於檔案內容某一區塊內容的改變不需要多次的複製貼上,按照可視即可見的思路去操作。
:n編輯下乙個檔案
:n編輯上乙個檔案
:files
列出目前這個 vim 開啟的所有檔案
:sp filename
有 filename 則為開啟同乙個檔案內容,有 filename 則表示在新視窗建立乙個新檔案
ctrl+w+j
先按住 ctrl 不放,再按下 w 後放開所有的按鍵,之後再按下 j ,則游標可以移動到下方的視窗
ctrl+w+k
先按住 ctrl 不放,再按下 w 後放開所有的按鍵,之後再按下 k,則游標可以移動到上方的視窗
ctrl+w+q
關閉所在的視窗,等效與:q 與 :close
組合鍵補齊的內容
ctrl+x -> ctrl+n
ctrl+x -> ctrl+f
ctrl+x -> ctrl+o
vim 中還存在類似 log 的操作記錄,它可以主動地將你曾經做過地操作記錄下來,從而能夠進行輕鬆地操作。檔案目錄為 ~/.viminfo。
vim 中還存在著環境設定,有點類似於首選項或者預設,引數主要有:
:set nu
:set nonu
設定與取消行號
:set hlsearch
:set nohlsearch
hlsearch(high light search),表示是否將查詢的字串反白的設定值,預設為 hlsearch
:set autoindent
:set noautoindent
是否自動縮排
:set backup
是否自動儲存備份檔案,一般為 nobackup。如果設定為 backup,則意味著當你修改乙個檔案時,原始檔會被另存為乙個檔名為 filename~ 的檔案。
:set ruler
是否顯示狀態列右下角設定值
:set showmode
是否顯示狀態列左下角設定值
:set backspace=012
設定 backspace 的功能。0 或 1 時,只能刪除剛剛輸入的字元。2時,可以刪除任意值
:set all
顯示目前所有的環境引數設定
:set
顯示與系統預設值不同的設定引數,即自行變動過的設定引數
:syntax on
:syntax on
是否顯示不同顏色
:set bg=dark
:set bg=light
顯示不同的顏色色調,預設是 light
環境引數同樣可以儲存在名為 (.vimrc) 的檔案中,一般放置在 /etc/vimrc 檔案中。也可以新建立 ~/.vimrc 進行設定,作用是相同的,該檔案中的注釋符號為"。
當使用 vim 進行編輯時,vim 會在被編輯檔案的目錄下,再建立乙個名為(.filename.swp)的快取檔案。如果電腦突然掉電時,則可以用該檔案還原。當開啟原始檔時,會被提醒警告資訊:
vim 使用中還會存在許多別的問題,如編碼格式,字元轉換等,使用的時候需要自己慢慢探索。
1.鳥哥的 linux 私房菜——基礎學習篇(第四版):
linux中vim編輯器的使用
進入指令模式 esc退出插入模式w儲存 q退出!強制執行 wq 強制儲存退出 和?和?的用法是一樣的 hello 查詢hello這個單詞 n 查詢下乙個。shift n 向上查詢 set nu顯示行號 set nonu取消行號 gg 到文字的第一行 g 到文字的最後一行 n到文字的第n行 i 在游標...
使用Linux中的 v i m 編輯器
配置檔案時linux作業系統的顯著特徵之一,其作用有點類似windows中的登錄檔,只不過登錄檔是幾種管理,而配置檔案是分散自由的管理。下面給大家介紹linux字元操作介面中的文字編輯器 vi,以便更好的管理和維護系統中的各種配置檔案。vi編輯器的工作模式有三種,不同的模式中能夠對檔案進行的操作也不...
linux 編輯器 vim使用
vim基本概念 vim有好多模式,今天我們先來介紹最常用的三種模式 命令模式 正常 普通模式 控制游標的移動,字元或行的刪除,可切換到插入模式或者末行模式 末行模式 檔案儲存,退出列出行號,找字串 我把常用的總結成如下圖 以上圖中是一些常用的設定,還有很多慢慢的了解。小插曲 無問西東 電影的最開始有...