vim 怎麼脫離滑鼠?

開始使用vim,怎麼擺脫滑鼠的依賴,特別是複製vim里的東西到別的地方,或者多個窗口間的複製,有什麼快捷方法?


我想題主目前面臨的主要問題應該是 「怎麼方便地不通過滑鼠在應用之間複製/粘貼文本」 。

Vim內部有內置的剪貼板(Vim里叫寄存器,即register),但通常都是不跟系統的剪貼板直接打交道的,所以當你用Vim里的y,d,p這些命令的時候,僅僅是跟Vim的內部剪貼板打交道,所以需要用"+y, "+p, "+d 或者 "*y, "*d, "*p 這樣的命令來指定使用系統剪貼板操作。

不過,有個很簡單的命令可以讓Vim自動把默認剪貼板和系統剪貼板的內容同步:

set clipboard+=unnamed

把這句命令加到你的vimrc里,然後重啟vim,你就可以在vim里直接用y,d,p操作系統剪貼板了。

當然還有一個問題是用快捷鍵在Vim之外的應用程序里怎麼(複製/剪切/粘貼),以及怎麼在應用程序之間切換。當然那就是系統快捷鍵的事情,不是Vim的事情啦。


我想保持 Vim 內部剪貼板的獨立,所以沒有配置 :

set clipboard+=unnamed

而 Windows 的 GVim 下,我更習慣:

從 Windows 剪貼板粘貼到 GVim: SHIFT+INSERT

從 GVim 複製到 Windows 剪貼板:CTRL+INSERT

即可,MacVim 下好像也能這麼做(忘記了)。

很奇怪為啥 Vim 的老手經常勸人不要用滑鼠,就這一條阻擋了多少新人啊,我當年就是因為配置成功了 nerdtree ,可以用滑鼠在 tree上點來點去,才漸漸開始覺得 「可以用vim」了。

特別用筆記本編程,滑鼠操作手部移動範圍都很小,你在 nerdtree 上找個文件,先要切換窗口,然後要 j/k 定位文件,或者 / 搜索文件名,敲這麼多下鍵盤,我用 thinkpad 的小紅點早就搞定了。

很多人還喜歡把 GVim 的目錄給關閉掉,我十分費解,我的 vim 里配置了 100+ 項快捷鍵,常用的可能 30多個,不常用的經常會搞忘記,如果沒有一個目錄給我選擇,我就需要經常打開配置文件來查看下具體含義,有這時間,目錄上選一下早就完成了,而且目錄上還備註了快捷鍵,選一下複習一下,對於這項工作,我不知道不用滑鼠/目錄高效在哪裡?

任何操作,愛用滑鼠就用吧,直到你鍵盤練上來了,也會根據自己情況配置快捷鍵了,並且形成了肌肉記憶,覺得真的這項工作鍵盤確實快過滑鼠,你自然而然的就會用鍵盤了。

沒必要為了用鍵盤而非要用鍵盤。


set mouse-=a
noremap & &
noremap & &
noremap & &
noremap & &


你告訴我,終端下的vim怎麼用滑鼠。。。。。。。。。。。


"+y

複製到系統剪貼板

"+p

從系統剪貼板貼上


sp/vsp:分屏

ctrl+雙w:多屏之間的切換

n+yy:複製n行

p:粘貼yy複製的內容

shift+insert:粘貼系統粘貼板的內容


"*或者"+


linux發行版中默認的vim是不帶複製粘貼功能的,fedora下的vim-x11和ubuntu下的vim-gnome是有複製粘貼功能的。要不你就自己編譯一個,加一個+X11選項。

windows下終端都沒有,就老老實實用gvim吧。

至於鍵位,建議列印一份鍵點陣圖,然後,用vim時避免使用滑鼠,且避免使用方向鍵和翻頁鍵。把gk映成k,把gj映成j。


除了「調整子窗口大小」這一點之外,我還真不知道vim還有什麼操作用滑鼠比用鍵盤更方便的


說明你還不夠懶。我原來是因為太懶,手不想離開鍵盤,就自然離開了滑鼠。


Ctrl+Alt+F1

然後把F7扣掉


貼些記得的, 有些可能記得不對:

(n)dd 剪切n行或當前行

(n)yy 複製n行或者當前行

hjkl 左上下右

v 選擇模式 選好後可以用d或者y剪切或複製所選內容

/ 找尋

:%s /n/m/ 將下一個n替換成m。也可以在最後加g或n或gn來替換所有給出總數或不替換就給總數。記得還可以每次詢問是否要替換的。

0 跳到行首

$ 跳到行尾

(n)gg 跳到第一行或第n行

. 執行最後執行的任務

* 找尋游標所在的詞並跳到下一個

shift g或者說大寫的G 跳到最末行

p 粘貼

b 跳到詞首, 也可以與yy, dd組合複製剪切

e 跳到詞尾

u 撤銷

ctrl r 把撤銷的改變再加回來

cw 刪除下一個詞並改成輸入模式

a 游標移動到下一個字元並改成輸入模式, 適合句尾

還有很多類似的, 比如跳到下一個括弧什麼的, 總之除非大段落操作不需要滑鼠。還有就是, 在.vimrc文本里加選項, 比如被選的改高光, 行字數設置等等。

複製了內容後可以用:e /path 換文本粘貼或者用vp/vsp同時開兩個文本


vim可以用滑鼠?


"+p "+y

ctrl insert

shift insert


多看幫助文檔,少逛知乎


如果是筆記本,鍵盤與觸摸板結合會很方便


用 Framebuffer Console。

複製其實是應該 cat 出來 pipe 的。粘貼用 redirect。


不用圖形界面,逼死你


脫離不脫離滑鼠其實並不重要

用 vim 有一個好處,就是可以按照你想要的方式去配置和使用,打造自己獨一無二的編輯器

所謂不使用滑鼠敲代碼是可以提高效率這個沒問題,但是在有些操作上自己覺得滑鼠順手,那就用滑鼠就好了,為了用 vim 完全脫離滑鼠,而放棄本來更加高效的操作方式,豈不是本末倒置了


把下面幾行添加到vimrc中,簡單粗暴。


"默認禁用滑鼠

set mouse=""

" 按「yy」把所選內容複製到系統粘貼板

vmap yy "+y

" 按「;p」把系統粘貼板的內容粘貼出來

nmap ;p "+P

imap ;p &"+Pa

nmap & "+p

"在命令行按「c-z」進行粘貼

cmap & &+


推薦閱讀:

TAG:Linux | Vim | Vim插件 | vim腳本 |