關於「vim」便利操作的按鍵設定 [論壇 - Ubuntu 與工具程式及軟體推薦]
正在瀏覽:
1 名遊客
關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## 緣起
因為之前的一個討論串「#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」裡。 我曉得每個人都有自己的操作習慣,和按鍵設定,我在設定按鍵的過程,也琢磨了好久,呵呵。 這邊的紀錄一來備忘,一來是提供各位一個參考, 也許可以有一個探索的起點,訂製合適自己的操作流程。 另外建議雖然做了按鍵的配置, 但是原來功能的指令還是需要記住, 在沒有做設定的環境,還可以用原來的指令來操作。 ================================================================================ 待續...
2019/4/22 0:33
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## 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/keybind.html#quick-switch ================================================================================ 待續...
2019/4/22 0:37
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## 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/keybind.html#window-resize ================================================================================ 待續...
2019/4/22 0:44
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## TabPage
關於「TabPage」的按鍵設定,有點多,我就不列了。 我有做兩種設定,提供參考, ================================================================================ 一種是我慣用的「t」開頭的, * https://github.com/samwhelp/tool-svim-core#tabpage * https://samwhelp.github.io/tool-svim-doc/read/en_us/feature/keybind.html#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 ================================================================================ 待續...
2019/4/22 0:47
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## Save
nnoremap <S-Tab> :w<CR> inoremap <S-Tab> <Esc>:w<CR>a 針對「Save」做了上面的設定。 不見得需要上面的設定,我通常還是會用「:」開頭的指令。 ================================================================================ 待續...
2019/4/22 0:50
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
## Line Move
這個功能,是從下面兩篇文章看到的,我改成適合我的按鍵操作。 * 凍仁的筆記 / Vim: Move line(s) up or down * 高見龍 / Vim的操作小技巧 相關的請參考 * :help :m * https://samwhelp.github.io/tool-svim-doc/read/en_us/feature/keybind.html#line-move * https://github.com/samwhelp/tool-svim-core#tab-move 以上提供參考 報告完畢 ![]()
2019/4/22 0:53
|
||||||||||
![]() |
回覆: 關於「vim」便利操作的按鍵設定 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 178 / 894
![]() |
今天發現了一個特別的專案「LunarVim」,
了解到,原來在「nvim 0.5版」以上,可以採用「Lua」設定。 也就是原本的「~/.config/nvim/init.vim」, 也可以採用「~/.config/nvim/init.lua」。 除了「LunarVim」,我也有發現已經有很多的專案都有採用這樣的設定,這些專案連結,紀錄在另一個頁面 > 我是在「Manjaro」上測試,還沒在「Ubuntu」測試安裝過新版的「Neovim」 ================================================================================ 另外「LunarVim」,已經設計改成可以獨立出來,不需要放在「~/.config/nvim/」, 是改放到「~/.local/share/lunarvim」這個路徑,所以入口就是「~/.local/share/lunarvim/init.lua」這個檔案, 可以參考它的「安裝程式」。 而它的設定資料夾,則是放到「~/.config/lvim」, 主要的設定檔是「~/.config/lvim/config.lua」, 而我今天寫這篇,就是我把上面回覆提到的一些我慣用的按鍵綁定,加到這個檔案 請參考我的設定「~/.config/lvim/config.lua」。 以及參考我的「修改說明」。 另外一種方式也可以自己寫一個簡單的「Pluin」,把想要增加的功能,直接寫在這個「Plugin」, 然後修改「~/.config/lvim/config.lua」,加入「Plugin」就行了。 ================================================================================ 另外現在這些Lua的專案,都是採用「wbthomason/packer.nvim」。 指令用法跟「junegunn/vim-plug」類似。 在「vim-plug」使用「:PlugInstall」 對照「packer.nvim」就是使用「:PackerInstall」。 在「packer」,這些「Plugin」應該可以在「~/.local/share/nvim/site/pack/packer」找到, 不過這要依專案而定, 在「LunarVim」,則是在「~/.local/share/lunarvim/site/pack/packer/」這個路徑。 ================================================================================ 其他檔案還有 * /usr/local/bin/lvim * ~/.local/share/applications/lvim.desktop ================================================================================ 可以採用「nvim lua」當關鍵字查詢,就可以找到相關的資料。 我也有紀錄我找到的一些實作案例,相關連結紀錄在我的筆記裡。 ================================================================================ 目前初步了解到這, 以上提供參考, 報告完畢 ![]() > 另外我在「xfteditor」也有加了一組輔助工具「xftlvim」。
2021/7/29 0:00
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.