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 "+yctrl insertshift insert
多看幫助文檔,少逛知乎
如果是筆記本,鍵盤與觸摸板結合會很方便
用 Framebuffer Console。
複製其實是應該 cat 出來 pipe 的。粘貼用 redirect。
不用圖形界面,逼死你
脫離不脫離滑鼠其實並不重要
用 vim 有一個好處,就是可以按照你想要的方式去配置和使用,打造自己獨一無二的編輯器
所謂不使用滑鼠敲代碼是可以提高效率這個沒問題,但是在有些操作上自己覺得滑鼠順手,那就用滑鼠就好了,為了用 vim 完全脫離滑鼠,而放棄本來更加高效的操作方式,豈不是本末倒置了
把下面幾行添加到vimrc中,簡單粗暴。
"默認禁用滑鼠
set mouse=""
" 按「yy」把所選內容複製到系統粘貼板
vmap yy "+y
" 按「;p」把系統粘貼板的內容粘貼出來
nmap ;p "+P
imap ;p &
nmap &
"在命令行按「c-z」進行粘貼
cmap &
推薦閱讀: