linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim
編輯器之神-vim的使用,編輯器神-vim
vim即vi的升級版;在linux中,vi是vim的軟鏈接,我們敲vi和vim出來的都是vim;
純手打,如有錯誤,敬請指出。
vi的三種模式及簡單使用
vi三種模式
命令模式(默認):是文件的入口,可以實現文件的定位,復制,翻頁等;
末行模式:是文件的出口,w write,q quit,wq 寫入并保存等;
編輯模式:正常的文字編輯;
三種模式的轉換
命令模式—>i,a,o,I,A,O—>編輯模式—>esc—>命令模式
命令模式—>”:”—>末行模式—>esc—>命令模式
vi的簡單使用
vi 已有文件:打開已存在的文件;
vi 不存在文件:新建文件;
vi 文件:打開文件,光標在行首;
vi 文件 +:打開文件,文件在末尾;
vi 文件 +行數:打開文件,并且指定行數;
例如:
vi hello.py #打開hello文件
vi hello.py +20 #打開hello文件并且把光標跳到第20行
vi hello.py + #打開hello文件并且光標跳到最后一行
異常處理之交換文件
如果我們在vi編輯文件時,忽然關閉終端,或者異常卡出,就會出現交換文件,用ls -al可查看,存在.swp結尾的交換文件;
出現交換文件后,再一次vi 原來的文件時,就會報錯,我們按照提示D刪除交換文件即可;
命令模式轉編輯模式
命令模式下:
i
插入光標前一個字符
I
插入行首
a
插入光標后一個字符
A
插入行末
o
向下新開一行,插入行首
O
向上新開一行,插入行首
保存退出編輯
在命令模式下保存,shift+z+z
末行模式下:
w
保存
q
退出
wq
保存退出
x
保存退出
q!
不保存強制退出
vim移動,跳轉
上下左右移動
命令模式:
k
上移
j
下移
h
左移
l
右移
hjkl控制上下作用
行內移動
命令模式下:
0:到達行首
^:到達行首第一個不是空白字符的位置
$:到達行尾
w:word,往后移一個word
b:back,往前移一個word
行數移動
命令模式下:
gg:快速移動到文件的第一行
G:快速移動到文件最后一行
num gg:快速跳轉到指定行
num G:快速跳轉到指定行
末行模式下:
:num 回車:在末行模式下跳轉到指定行
其中用的最多的還是num G
上下翻頁
Ctrl+b:向上翻一頁
Ctrl+f:向下翻一頁
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
H:跳轉到屏幕頂部
M:跳轉到屏幕中間
L:跳轉到屏幕底部
注意HML跳轉的是屏幕,不是文件
其他跳轉
{: 按段移動,上移
}: 按段移動,下移
%:移到括號的左右邊
復制,粘貼,刪除(剪切)
復制粘貼
命令模式下:
y:和移動命令一起使用,復制
yy:復制一行,支持nyy復制多行
p 粘貼
刪除(剪切)
命令模式下:
x: 刪除光標后一個字符,相當于 Del
X: 刪除光標前一個字符,相當于 Backspace
dd: 剪切光標所在行,n dd 刪除指定的行數
d:和移動命令配合使用,刪除移動命令對應的內容;
D: 刪除光標后本行所有內容,包含光標所在字符;
d0: 刪除光標前本行所有內容,不包含光標所在字符;
dw: 將光標移到單詞首字母,再dw,可刪除單詞
練習:
5x:刪除光標及往后五個字符
v+%+x:刪除選中的括號內的內容
d+6+G:把光標所在行和第六行之間的內容全部刪除,所在行能大于6也能小于6
y+{ +n+G+p:復制從光標往后的一段內容,并跳到指定行進行粘貼
yy空行+5+p:復制空行,并且粘貼5個空行
復制刪除總結和擴展
d和x在vi中看起來是刪除操作,但本質上其實是剪切操作,剪切后會將內容存放在和剪切板功能相同的緩沖區;
同樣,復制其實也是將內容放在緩沖區;
注意,在其他圖形界面復制的內容在vi中不能直接通過p進行粘貼,需要右鍵粘貼,因為剪切板和緩沖區不是同一個;
可視模式(選中文本)
在命令模式下,
v,可視模式,從光標選中位置,開始向上向下選中文本,選中的位置,是原來光標的位置;
V,可視行模式,從光標選中行開始,向上或向下選中光標所經過的每一行;
Ctrl+v,可視塊模式,垂直方向選中文本,和sublime的ctrl很像,具體可自己實驗;
可視模式可以配合 d, y, >>, << 實現對文本塊的刪除,復制,左右移動
可視模式還可以和段落移動等結合使用,例如:
V+G,表示選中從當前行一直到末行
V+gg,表示選中從當前行到文件首行,
V+{,
V+},
v+%,括號等等。
替換和查找
小幅替換
命令模式下:
r:將光標下的字符進行替換;例如,r+H:將那個光標下的字符替換成H
R: 替換當前行光標后的字符;例如,hello單詞首字母,R+world:將hello單詞替換成world;
全局替換
末行模式下,
固定格式:%s///g
格式:%s/舊文本/新文本/g
例如:
把python全部替換成world:%s/python/world/g
將第一行至第10行之間的abc替換成123:1, 10s/abc/123/g
可視區域替換
先用可視模式選中要替換的范圍,再進入末行模式進行替換
格式:s/舊文本/新文本/g
V+向下移動光標到第11行+:進入末行模式+s/world/python/g:將當前行到第11行的所有world替換成python
確認替換
格式:%s/舊文本/新文本/gc
會查找出全部的舊文本,然后逐個的讓你來確認是否替換,替換y,不替換n,替換所有a,不想替換了就q
查找
命令模式下:
/+str:查找指定字符串
n:查找下一個被高亮的字符串
N:查找上一個被高亮的字符串
單詞快速匹配:
*:向后查找當前光標所在單詞
#:向前查找當前光標所在單詞
不想高亮,可以查找一個不存在的單詞即可
其他必知必會
撤銷反撤銷
命令模式下:
u 撤銷
ctl+r 反撤銷
文本行移動(縮排)
命令模式下:
>>: 文本行右移
<<:>
練習:
V+向下三行+>:將選中的三行向右縮進四個空格,同理,左縮進也是
V+向下三行+>+.+.:將選中的三行向右縮進四個空格后,再右移四格,再右移四格,即一個點就重復執行一次
重復執行
命令模式下:
.: 重復上一次操作的命令
標記
當我們在開發時,如果有某一行需要稍后再來處理,可以先對它進行標記,后面需要處理時再進行快速跳轉
標記:m+x (x屬于[a-z][A-Z])
跳轉:'+x
可以分別標記多行為多個別名,再跳轉;
如果給多行用了同一個別名,那么別名指向的是最新的一行
vim里執行 shell 下命令
末行模式里輸入!,后面跟命令
末行命令擴展
e .:瀏覽當前目錄下的所有文件
e 文件名:切換編輯文件
n 文件名:新建并編輯文件
w 文件名:如果原來沒有文件,就創建新文件并將源文件的內容寫入新文件,但編輯的還是源文件
切換文件之前,必須保存原來編寫的文件
末行模式下w命令的作用講解:
在實際開發時,用來起階段性備份的作用,和git的作用類似
分屏命令
末行模式下,
sp:橫向分屏
vsp:縱向分屏
切換窗口:Ctrl+w,w
互換窗口:r
關閉當前窗口:c,但是不能關閉最后一個窗口
退出當前窗口:q,能退出最后一個窗口
關閉其他窗口:o
練習
1.連續打出十個*
命令模式,10+i+*+esc;后面也可以加.,重復執行;
8+i+print("hello world")+enter+esc:重復8行代碼;
但建議在進入編輯模式之前,不要按數字,不然按了數字編輯了又esc了,就發現辛苦敲得代碼粘貼了很多。
2.給多行代碼添加注釋
命令模式,將光標移動到要注釋的第一行,^移動到行首,
Ctrl+v進入可視塊模式,向下選中多行要注釋的代碼,
I進入編輯模式,在行首添加#,esc。
http://www.dengb.com/Linuxjc/1345680.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/1345680.htmlTechArticle編輯器之神-vim的使用,編輯器神-vim vim即vi的升級版;在linux中,vi是vim的軟鏈接,我們敲vi和vim出來的都是vim; 純手打,如有錯誤,敬請指...
總結
以上是生活随笔為你收集整理的linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 即日起,荣耀线下门店免费提供血氧饱和度检
- 下一篇: linux安装nginx1.9,Cent