linux 自定义vi dd,Vim常用命令及配置方案
幾句話
很久之前就接觸到vim,初學那陣覺得vim很酷炫,但確實對新手不是很友好。我也就簡單看了下基本操作就上手了,但又不是長期在vim下工作,這就導致了每一次重新使用vim都要再去回溫下基本操作,很是難受,所以就趁這個機會把基本操作都記錄下來,一來可以當做自己的筆記,二來希望可以幫到同樣和我一樣用過vim但卻忘得差不多的人。另外,這里也記錄一下自己的vim配置,這個配置可能并沒有其他網友分享的那么強大,但至少足夠簡單,能夠提高自己編碼的效率。
vim常用命令
首先先簡單梳理一下vim的工作模式。vim有三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。
簡單來講就是,當我們剛打開vim,或者使用vim打開了一個文件,終端上顯示著文件的內容,這時候就是命令模式(如上圖就是剛打開一個文件的情況,此時光標位于第一行行首處),在現在的情況下,鍵盤輸入小寫的i a o 或者大寫I A O中的其中一個,就可以進入輸入模式,各個按鍵的具體意義如下:
按鍵具體意義
i
從目前光標所在處輸入
I
在目前所在行的第一個非空格符處開始輸入
a
從目前光標所在的下一個字符處開始輸入
A
從光標所在行的最后一個字符處開始輸入
o
在目前光標所在的下一行處輸入新的一行
O
在目前光標所在的上一行處輸入新的一行
r
繼續輸入一個字符以取代光標所在處后面單個字符,而后返回命令模式
R
新輸入的字符會一直取代光標所在處后面的字符
當我們使用上述按鍵進入輸入模式,配合方向鍵編輯好文件內容后,使用ESC鍵可退出輸入模式,回到命令模式,vim的大部分命令都是在命令模式下使用。
命令模式下的按鍵十分豐富,主要的操作為光標移動、復制粘貼、搜索替換等
光標移動的基本按鍵如下:
按鍵具體意義
h 或 向左箭頭鍵(←)
光標向左移動一個字符
j 或 向下箭頭鍵(↓)
光標向下移動一行
k 或 向上箭頭鍵(↑)
光標向上移動一行
l 或 向右箭頭鍵(→)
光標向右移動一個字符
在上面的基礎上,如果你想光標的位置一次移動多行或者在同一行上移動多個字符,可以有以下幾種方法:
直接輸入數字并在其后輸入相應的方向,例如輸入20j或20↓表示光標向下移動20行,輸入20l或20→表示光標向右移動20個字符。
輸入數字后加空格可以使光標向右移動n個字符,例如20[space]即和上面第一條的20l或20→達到相同的效果,為了簡單一點,我個人認為如果不是vim深度用戶的話,我們可以直接放棄記憶這個命令。同樣性質的命令還有20[enter],表示光標向下移動20行
ctrl+f/b/d/u可以用來上下翻頁,但是對大部分人來說沒有必要去記這個繁瑣的命令,我個人更加推薦使用鍵盤上的Page Up和Page Down來上下翻頁
0和$可以用來移動光標到行首或行尾,同樣,我還是認為沒必要去記憶這個命令,而是直接使用Home和End來達到同樣的效果
另外,還有一些很方便的操作值得單獨拎出來進一下:
按鍵(區分大小寫)具體意義
H(High)
光標移動到這個屏幕的最上方那一行的第一個字符
M(Middle)
光標移動到這個屏幕的中央那一行的第一個字符
L(Low)
光標移動到這個屏幕的最下方那一行的第一個字符
G
移動到這個文件的最后一行(常用)
gg
移動到這個文件的第一行(常用)
nG
移動到這個文件的第n行
復制粘貼的操作比較繁雜,但也并不是沒有規律可循,具體如下:
按鍵具體意義
x或[delete]
刪除光標后面的單個字符,
X或[backspace]
刪除光標前面的單個字符
nx
連續向后刪除 n 個字符。同理,可以有大寫的nX
dd
刪除光標所在的一整行
ndd
刪除光標向下的n行(包括光標那一行)
d+某個位置
刪除光標處到那個位置的所有內容。例如d1G刪除從光標到第一行的所有內容,dG刪除從光標到最后一行的所有內容,d$或d[End]刪除從光標處到行尾的所有字符。以此類推
yy
復制光標所在的那一行(常用)
nyy
復制光標向下的n行(包括光標那一行)
y+某個位置
復制選取的范圍,選取范圍如前面d+某個位置所示
p
將已復制的內容在下一行粘貼
P
將已復制的內容在上一行粘貼
J
將光標所在行與下一行的數據結合成同一行,即在刪除該行和下一行之間的換行符。
u
復原前一個動作(常用)
[ctrl]+r
重做上一個動作(常用)
.(小數點)
重復前一個動作(常用)
搜索替換部分為了簡潔一點,就只提一下搜索,替換部分就不涉及了
按鍵具體意義
/[要搜索的字符]
向光標之下尋找一個匹配的字符串。如/int會搜索匹配int
?[要搜索的字符]
向光標之上尋找一個匹配的字符串。
在上面搜索字符串的基礎上按回車鍵,就可使光標跑到搜索到的字符串處,這時輸入n光標就會跳到下一個或上一個匹配的字符串處,具體是上還是下取決于剛才執行的是/string還是?string,而輸入大寫的N則是與小寫n相反的方向。(注意,當執行n到達文件底部時就會循環跳到頂部,反之亦然)
好了,現在我們已經能夠編輯文件內容了,那怎樣保存文件呢?一般情況下,當需要保存或退出文件時,我們習慣性按一下ESC鍵以進入命令模式(當然如果已經在命令模式下也習慣性按一下吧),這時輸入:加相應的指令就能對文件執行相應的操作,這里需要注意一點的就是,如果你對該文件沒有相應的權限,那么執行相關操作將會被拒絕,例如我在Ubuntu下想要修改我沒有權限的文件,vim會提示權限拒絕,我需要執行sudo vim filename以root權限進入vim才能修改文件。
按鍵具體意義
:w
保存編輯的內容
:w!
若文件屬性為只讀,強制保存編輯的內容,需要相應的權限
:q
退出vim
:q!
強制離開不保存編輯過的內容
:wq
保存后退出vim
:wq!
強制保存后退出vim
ZZ
若文件沒有改動,則不儲存離開,若文件已經被改動過,則儲存后離開!
:w filename
另存為filename
:! command
暫時離開vim到命令行模式下執行 command 的顯示結果!例如『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息!
配置方案
這個只是一個簡單的vim配置,留下了一些我認為必要的功能,沒有那么多花俏的功能,也不像網上一些文章分享的配置成酷炫的IDE,我個人一貫的原則就是簡潔明了,使用方便即可。
使用方法:保存成名為.vimrc的文件放在~目錄下,即用戶個人目錄下即可。
"********************************************************
" 一般性配置 *
"********************************************************
"關閉vim一致性原則,避免以前版本的一些bug和局限
set nocompatible
"顯示行號
set number
"設置在編輯過程中右下角顯示光標的行列信息
set ruler
"在狀態欄顯示正在輸入的命令
set showcmd
"設置歷史記錄條數
set history=1000
"設置取消備份 禁止臨時文件的生成
set nobackup
set noswapfile
"設置匹配模式,類似當輸入一個左括號時會匹配相應的那個右括號
set showmatch
"設置C/C++方式自動對齊
set autoindent
set cindent
"開啟語法高亮功能
syntax enable
syntax on
"指定配色方案為256色
set t_Co=256
"設置搜索時忽略大小寫
set ignorecase
"實時顯示搜索結果
set incsearch
"配置backspace的工作方式
set backspace=indent,eol,start
"設置在vim中可以使用鼠標
set mouse=a
"設置tab寬度
set tabstop=4
"設置自動對齊空格數
set shiftwidth=4
"設置退格鍵時可以刪除4個空格
set smarttab
set softtabstop=4
"將tab鍵自動轉換為空格
set expandtab
"設置編碼方式
set encoding=utf-8
"自動判斷編碼時 依次嘗試以下編碼
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"檢測文件類型
filetype on
"針對不同的文件采取不同的縮進方式
filetype indent on
"啟動智能補全
filetype plugin indent on
"括號自動補全
inoremap ( ()i
inoremap [ []i
inoremap { {}i
inoremap < <>i
總結
以上是生活随笔為你收集整理的linux 自定义vi dd,Vim常用命令及配置方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA怎么实现网页退出系统_java后
- 下一篇: alibaba 实体转json_com.