關於「vim」便利操作的按鍵設定 [論壇 - Ubuntu 與工具程式及軟體推薦]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## 緣起

因為之前的一個討論串「#2 回覆: 請教在Linux下自由軟體的開發除錯問題」,

我之前對vim只是簡單的使用,或多或少會發現到一些文章,但當下並沒有刻意深入去探索,

最近稍微探索了一下,已經過了一段時間了,想說做點紀錄,不然過了一段時間又忘了。

一開始我是閱讀下面兩篇文章,之前有發現過這兩篇文章,但當時沒仔細去深究,
這次有靜下心,好好的閱讀一下。

* 阮一峰的網絡日誌 / Vim 配置入門
* MagicLen / 個人化自己的vim文字編輯器(.vimrc設定教學)

然後搭配「vim」的「help」來閱讀。

從上面看到的一些關鍵字,再從網路上找尋更多的參考文章,

例如這篇「Vim 插件管理器概覽」,就可以學到關鍵的概念。

## space-vim (以下兩個地方,可以看到該作者的文章)

* https://www.jianshu.com/c/eb88e454b66a
* https://www.jianshu.com/u/daf68451f175

## Vim Cheat Sheet

* Vim Cheat Sheet (中文版)

網路上有很多參考文章,就不一一列了。

搭配這些參考文章,我再回過頭來閱讀「vim」的「help」,比較能讀通。

* :help usr_07.txt
* :help usr_08.txt
* :help normal-index
* :help insert-index
* :help options.txt
* :help :map-alt-keys

================================================================================

因此產生了好幾個專案如下,只是簡單做些按鍵的設定,和一些顏色的調整,有些也還沒研究透徹。

我的環境是「Ubuntu 18.04」,使用的是「Terminal」裡面的「vim」或「nvim」。
所以只有針對這部份去做測試,並沒有去考慮到「gui vim」的環境或是其他平台。


## Prototype Project

* skel-project-plan/example/project-vimrc/vimrc-static
* skel-project-plan/example/project-vimrc/vimrc-dynamic

## Project

以下專案,是依據上面兩個為原型,演變出來的

* tool-svim
* tool-mvim
* tool-lvim
* tool-hvim
* tool-ivim

## Plugin

上面的專案,主要會使用到的是下面兩個「Plugin」。

* tool-svim-core (按鍵設定和參數設定)
* tool-svim-colorfit (顏色調整)


## Project With space-vim

一些我覺得便利操作的按鍵設定,另外寫了下面幾個「Plugin」,可以搭配「space-vim」使用。

* vim-plugin-fit-key-with-space-vim
* vim-plugin-fit-key-raw-with-space-vim
* vim-plugin-switch-key-with-space-vim
* vim-plugin-switch-key-raw-with-space-vim

討論串

================================================================================

## 文件

一些想要寫的心得,紀錄在下面兩個地方,其實還有想寫的,還沒寫,之後有機會慢慢再補

* https://github.com/samwhelp/tool-svim-doc
* https://github.com/samwhelp/note-about-vim

================================================================================

以下先把一些我覺得實用的按鍵設定,挑出來介紹一下。

並不需要使用上面我提到的任何一個專案,

若覺得合用,可以直接寫在您的「vimrc」裡。

我曉得每個人都有自己的操作習慣,和按鍵設定,我在設定按鍵的過程,也琢磨了好久,呵呵。

這邊的紀錄一來備忘,一來是提供各位一個參考,
也許可以有一個探索的起點,訂製合適自己的操作流程。

另外建議雖然做了按鍵的配置,
但是原來功能的指令還是需要記住,
在沒有做設定的環境,還可以用原來的指令來操作。

================================================================================

待續...

4/22 0:33:32
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## Quick Switch

若有在使用「Buffer」「Window」「TabPage」,

我設定了三組的按鍵設定,用來快速切換。


### Switch Window


nnoremap <Tab> <C-w>w
nnoremap <BS> <C-w>W



### Switch Buffer


nnoremap <C-j> :bprevious<CR>
nnoremap <C-k> :bnext<CR>



### Switch TabPage


nnoremap <C-h> :tabprevious<CR>
nnoremap <C-l> :tabnext<CR>



以上設定,可以寫在您的「vimrc」裡。

以上並不需要用到任何「Plugin」,「Vim」原本就有的功能,只是設定按鍵對應,便利操作。

以上都是在「Vim Normal Mode」下操作。

================================================================================

## 簡易表格說明


<Backspace>   | C-w W               | To Previous Window
<Tab>         | C-w w               | To Next Window
<Ctrl+j>      | :bprevious<CR>      | To Previous Buffer
<Ctrl+k>      | :bnext<CR>          | To Next Buffer
<Ctrl+h>      | :tabprevious<CR>    | To Previous TabPage
<Ctrl+l>      | :tabnext<CR>        | To Next TabPage




可以連到下面網址觀看

* https://github.com/samwhelp/tool-svim-core#quick-switch
* https://samwhelp.github.io/tool-svim-doc/read/en_us/#/feature?id=quick-switch

================================================================================

待續...

4/22 0:37:44
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## Window Resize

針對的「Windnow Resize」的部份,做了以下的對應設定,來便利操作。


nnoremap <S-Down> <C-w>-
nnoremap <S-Up> <C-w>+
nnoremap <S-Left> <C-w><
nnoremap <S-Right> <C-w>>



對於「Window」其他的操作,我都還是使用原來「Vim」提供的「Ctrl+w」開頭鍵的操作。
上面做的對應,我個人覺得比原來的設定,更便利來操作該動作,所以才特別去做調整。

可以參考

* :help CTRL-W
* :help window.txt
* https://github.com/samwhelp/tool-svim-core#window-resize
* https://samwhelp.github.io/tool-svim-doc/read/en_us/#/feature?id=window-resize

================================================================================

待續...

4/22 0:44:42
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## TabPage

關於「TabPage」的按鍵設定,有點多,我就不列了。

我有做兩種設定,提供參考,

================================================================================

一種是我慣用的「t」開頭的,

* https://github.com/samwhelp/tool-svim-core#tabpage
* https://samwhelp.github.io/tool-svim-doc/read/en_us/#/feature?id=tabpage
* https://github.com/samwhelp/tool-svim-core/blob/master/plugin/Svim.vim#L748 <--有些我沒寫在上面的文件裡

================================================================================

一種是搭配「space-vim」以「<Space><Space>」開頭的。

* https://github.com/samwhelp/vim-plugin-fit-key-raw-with-space-vim#tabpage
* https://github.com/samwhelp/vim-plugin-fit-key-raw-with-space-vim/blob/master/plugin/FitKeyRaw.vim#L137

================================================================================


待續...

4/22 0:47:21
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## Save



nnoremap <S-Tab> :w<CR>
inoremap <S-Tab> <Esc>:w<CR>a




針對「Save」做了上面的設定。

不見得需要上面的設定,我通常還是會用「:」開頭的指令。

================================================================================

待續...

4/22 0:50:15
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線
## Line Move


nnoremap <S-PageUp> :m-2<CR>
nnoremap <S-PageDown> :m+<CR>
inoremap <S-PageUp> <Esc>:m-2<CR>i
inoremap <S-PageDown> <Esc>:m+<CR>i



這個功能,是從下面兩篇文章看到的,我改成適合我的按鍵操作。

* 凍仁的筆記 / Vim: Move line(s) up or down
* 高見龍 / Vim的操作小技巧

相關的請參考

* :help :m
* https://github.com/samwhelp/tool-svim-core#line-move
* https://samwhelp.github.io/tool-svim-doc/read/en_us/#/feature?id=line-move


以上提供參考

報告完畢


4/22 0:53:11
應用擴展 工具箱
回覆: 關於「vim」便利操作的按鍵設定
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 851
MP : 581 / 18860
EXP: 6
離線

4/22 1:03:00
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.