Vim操作記錄
來自專欄 Miyas 技術學習小記36 人贊了文章
前言:
以下是我跟著老師的講解操作跟著做了一遍,刷新了自己對編輯器使用的慣性思維,比如鍵盤上hjkl的移動游標它處於一行,需要你在腦中自動生成移動方向,剛開始一直轉換不過來。其快捷鍵也具有英文語義化的感覺,無需死記硬背。當然以下對於小白來說目前夠用了。過後還需要使用經驗的補充。
一、vim介紹
- linux自帶
- 不需要滑鼠,不用來回切換,速度快
- 快捷鍵特別方便
- 支持宏、插件,可以自己把vim配成一個IDE(集成開發環境)
1、安裝和配置
切換bash和zsh
- 切換bash:chsh -s /bin/bash
- 切換zsh:chsh -s /bin/zsh
(1)window——安裝git bash——使用vim
(2)mac——安裝iterm2——shell頁面下安裝vim
~ vim
2、基本操作
(1)如何退出
按ESC——依次輸入想輸入的內容——:wq(或 :q!)
(2)如何在iterm2閱讀vim教程
~ vimtutor (enter)
(3)vim基本單詞的教學
-> ~ quit 退出-> ~ write/read 讀/寫-> ~ yank (copy) 拽-> ~ paste 粘貼-> ~ delete 刪除-> ~ change 改變-> ~ line 一行-> ~ find 查找-> ~ word 單詞-> ~ forward/backward 向前/向後-> ~ up/down 往上/往下-> ~ i (insert/append) 插入進入編輯-> ~ u (undo) 撤銷
3、vim的命令
註:快捷鍵,除了編輯模式以外,都是正常模式+英文字元的vim操作
移動游標命令
游標編輯模式內移動,既可用箭頭鍵,也可用hjkl字母鍵h(左移) j(下行) k(上行) l(右移)另起一行:o鍵單個標籤整體移動tab鍵
(編輯模式下的)插入(添加)命令:insert
i鍵 ——在選中字的左邊(前面)插入a鍵 ——在選中字的右邊(後面)插入&shift+I鍵 ——在行首輸入A鍵/shift+a鍵 ——在行尾的最後輸入
實現模式切換命令
i 鍵—— insert模式 (編輯模式) ,啟動插入模式Esc鍵 ——普通模式(normal模式),退出/恢復正常模式:鍵 —— 冒號模式(命令模式) v鍵 —— visual模式(編輯選區模式)
複製粘貼命令
塊狀選定刪除
選定:v+hjkl移動游標停在欲刪除的第一個字元+j刪除:s部分選定:visualv+hjkl游標移動鍵——上下左右移動選定部分選定用的刪除d鍵 (選定之後刪除)選定修改c鍵 (選定後直接加上修改內容)選定拷貝 :yardy鍵 (選定後複製至變數中去)
拷貝後粘貼:parsep鍵 當前游標往後粘貼P鍵 當前游標往前粘貼
保存文件:write
:w(enter回車)——保存文件
退出:quit
:q!(enter回車) ——(放棄所有改動)強制退出&:wq (enter回車)——(保存所有改動)保存退出
翻頁:up/down
ctrl+U —— 往上半頁翻ctrl+D—— 往上半頁翻
刪除類命令:delete(很靈活)
x鍵 ——刪除當前游標下字
dd鍵 —— 刪除當行文字(此時會進入一個變數)3dd鍵 ——刪除三行次數 X delete a worddw鍵 ——(往後)刪除一個單詞d 2 w鍵 ——(當前游標下往後)刪除2個單詞delete backwarddb鍵 —— (往前)刪除一個單詞 delete in/at 符號或符號名d i ( ——把括弧裡面內容刪除d i { ——把花括弧裡面函數刪除
d a ( ——連同括弧一起刪除delete in tagd i t ——把標籤內的內容刪除
修改命令:change
change in tagc i t ——修改標籤內的內容,同時開啟編輯模式change a wordc w ——修改內容
調至指定行
8 j ——跳轉至第8行的指定行
撤銷:undo
u鍵
把剛才做的再做一遍:redo
ctrl+r鍵
三、安裝插件
1、配置.vimrc文件
(1)進入終端
創建文件
~ touch 1.txt
進入vim
~ vim 1.txt
修改文件(重命名文件)
~ mv 1.txt 1.html
進入
~ vi 2.html
(進入編輯模式)
i鍵(底部顯示--INSERT--)
(2)安裝vimrc文件
退出終端:
~ :wq
安裝插件:
進入:https://gist.github.com/FrankFang/a6dc0886d6895c088225d7c61b954e69
Raw鍵——複製網址:https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc
回到終端:
第一步:curl 這個網址
curl https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc
第二步:重定向安裝vimrc文件
curl https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc >/. vimrc
第三步:進入vimrc文件
~ vi ~/.vimrc
退出
~ :q
第四步:
~vi 2.html
此時,進入2.html之後,發現代碼不一樣:
- 配色不一樣
- tab鍵的空格不一樣
(3)終端內做一些事情
複製
v+游標移動hjkl+y ——複製
實現真正能到瀏覽器粘貼的文本鍵:v+hjkl鍵+空格+y
到瀏覽器粘貼:ctrl+v
2、安裝管理插件的插件vimplug
(1)安裝插件:vim-plug
~ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
(2)使用
編輯.vimrc。
進入終端,打開.vimrc
~ vi ~/.vimrc
分別粘貼 vim-plug 里兩行命令,在.vimrc文件中分別放置
call plug#begin(~/.vim/plugged)call plug#end()
保存退出
:wq
重進
~ vi ~/.vimrc
3、配置創建html快捷寫法的插件emmet
(1)安裝插件:vim-emmet
選2中的終端操作:
進入.vimrc配置文件中,直接輸入:Plug 插件名字
~ Plug mattn/emmet-vim
保存退出
:wq
重進
~ vi ~/.vimrc
安裝插件並回車(enter)運行
:PlugInstall
出現安裝成功:
退出:quitall
:qa
進入2.html
~ vi 2.html
(如有原先內容可快捷刪除)
使用插件
html:5 ctrl+y ,
出現標準的html文檔,如圖:
退出
:q
4、其他快捷鍵配置
(1)替換html快捷鍵寫法的屬性:如ctrl+y 替換成 ctrl+z(從文檔中獲取新屬性:vim-emmet)
進入.vimrc配置文件,在空格處添加
let g:user_emmet_leader_key=<C-Z>
保存退出
:wq
進入 2.html
~vi 2.html
使用替換後的快捷鍵ctrl+z
html:5 ctrl+z ,
(2)其他配置查看文檔:https://github.com/FrankFang/dot-files/blob/master/vimrc
這裡選擇添加文檔中的可改變html快捷屬性的幾個新屬性
imap <C-y> <plug>(emmet-expand-abbr)nmap <C-y> <plug>(emmet-expand-abbr)vmap <C-y> <plug>(emmet-expand-abbr)
續4(1)中的終端操作,退出
:q
編輯.vimrc。進入.vimrc
~ vi ~/.vimrc
在空格行處隨意添加所改變的快捷鍵屬性
imap <C-y> <plug>(emmet-expand-abbr) //在i模式下做快捷鍵的映射nmap <C-y> <plug>(emmet-expand-abbr) //在n模式下做快捷鍵的映射vmap <C-y> <plug>(emmet-expand-abbr) //在v模式下做快捷鍵的映射
保存退出
:wq
再次進入 2.html
~ vi 2.html
(如果原先有內容先快捷刪除)
使用已改變的html快捷鍵屬性的寫法:
html:5 ctrl+y
如何使用emmet插件總結:
- 查相關文檔(如emmet插件)看相關屬性配置命令方法
- ~ vi ~/.vimrc 添加屬性配置
- ~ vi 2.html 測試新屬性效果
5、html文件中vim快捷鍵使用
(1)多行同時編輯
如在 2.html操作演示
ul>li{導航$}*10
回到正常模式Esc鍵,A鍵,ctrl+y,出現:
<ul> <li>導航1</li> <li>導航2</li> <li>導航3</li> <li>導航4</li> <li>導航5</li> <li>導航6</li> <li>導航7</li> <li>導航8</li> <li>導航9</li> <li>導航10</li> </ul>
- 切換編輯模式:
i鍵
- 選定左邊所有:li
ctrl+v+j(下移),鬆開ctrl+v,方向鍵→鍵
- 刪除:
s鍵
- 在第一個li標籤上修改為:
div
- 切換正常模式:
按下ESC鍵,則會多行同時改變標籤名字
(2)複製一行並將其他行移到其他地方
- 正常模式下:
第一步:dd鍵——刪除一行,如A行
第二步:p鍵——將刪除的A行對準要粘貼的地方的前一行(假設:Y行)進行操作粘貼,即會在Y行後面粘貼上
(3)多個需求
A、如何在多行文本中各行的指定位置插入同樣的字元串
創建js文件
退出,創建新文件
:q~ touch main.js
進入main.js
~ vi main.js
編輯這個js文件,進入i的編輯模式,打以下代碼:
function (p1){ console.log(p1) p2 = p1+1 p3 = p1+2 return p1 }
B、如何將所有的p1改為p0
進入esc正常模式
- 開始錄製片段:
q a鍵——底部出現recording(a代表a事件)
- 刪除:
xx鍵——刪除兩項
- 進入編輯模式:
i 鍵——輸入修改的內容
回到正常模式:
esc鍵
- 結束錄製:
q鍵
- 在需要修改的地方播放剛才錄製的事件:
@ a 鍵
C、把一個單詞變成另一個單詞
esc正常模式下,
- 游標移動到單詞的第一個字元:
c w鍵——刪選該單詞
(同步)此時處於i編輯模式可以直接編輯:
輸入新單詞:(如A詞)
切換esc正常模式,
- 再到另一個單詞下替換剛才新單詞 :A詞
. 鍵 (此時就出現A詞)
推薦閱讀: