Vim操作記錄

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

部分選定:visual

v+hjkl游標移動鍵——上下左右移動選定

部分選定用的刪除

d鍵 (選定之後刪除)

選定修改

c鍵 (選定後直接加上修改內容)

選定拷貝 :yard

y鍵 (選定後複製至變數中去)

拷貝後粘貼:parse

p鍵 當前游標往後粘貼

P鍵 當前游標往前粘貼

保存文件:write

:w(enter回車)——保存文件

退出:quit

:q!(enter回車) ——(放棄所有改動)強制退出

&

:wq (enter回車)——(保存所有改動)保存退出

翻頁:up/down

ctrl+U —— 往上半頁翻

ctrl+D—— 往上半頁翻

刪除類命令:delete(很靈活)

x鍵 ——刪除當前游標下字

dd鍵 —— 刪除當行文字(此時會進入一個變數)

3dd鍵 ——刪除三行

次數 X delete a word

dw鍵 ——(往後)刪除一個單詞

d 2 w鍵 ——(當前游標下往後)刪除2個單詞

delete backward

db鍵 —— (往前)刪除一個單詞

delete in/at 符號或符號名

d i ( ——把括弧裡面內容刪除

d i { ——把花括弧裡面函數刪除

d a ( ——連同括弧一起刪除

delete in tag

d i t ——把標籤內的內容刪除

修改命令:change

change in tag

c i t ——修改標籤內的內容,同時開啟編輯模式

change a word

c 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

安裝插件:

進入:gist.github.com/FrankFa

Raw鍵——複製網址:gist.githubusercontent.com

回到終端:

第一步: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)其他配置查看文檔:github.com/FrankFang/do

這裡選擇添加文檔中的可改變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詞)


推薦閱讀:

TAG:Vim插件 | Vim | Web編輯器 |