Re: the pragmatic programmer 提到的操作

看板Editor (編輯器(vim/emacs))作者 (KAIKAIKAI)時間3年前 (), 3年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《descent (「雄辯是銀,沉默是金」)》之銘言: 小弟使用的是 neovim 0.5 : 第3章 - 基礎工具 : 怎麼才算遊刃有餘的使用編輯器。這裡有一個挑戰列表, 你能完成多少? : 1. 當編輯文本時, 以字元、單詞、行、段落為單位移動光標及進行選擇。 : 2. 當編輯程式碼時, 在各種語法單元 (配對的分隔符、函數、模組......) 之間 通常我只拿來寫程式,所以很多 text object 不太用到。 單行移動我會使用 f 配合 hjkl,在遠一點會使用 / 搜尋或是 [( ]) [{ ]} % 等等 motion,最後我覺得還是選用 easymotion 或 vim-sneak 可以少很多折騰 可以參考我的文章 #1VU3FViD (Editor) : 3. 做完修改後, 重新縮進程式碼。 每一個程式語言 format 的格式不一樣,我覺得用 vim 內建的不敷使用, 最後我使用 Chiel92/vim-autoformat 插件來解決 : 4. 用單個指令完成程式碼塊的註釋或取消註釋。 tpope/vim-commentary 提供了 gc 能做到此事 也可以使用內建 <Ctrl-v> 達到效果 單個指令我是認輸 : 5. Undo 並 Redo變更。 這還蠻常用的,但太複雜的 undo 和 redo 我使用 mbbill/undotree,雖然這插件 不常用,但是需要的時候你會很感謝它 : 6. 把編輯窗口切割成多個面板, 然後在它們之間跳轉。 這點並不難 切割窗口我最常使用 :sp :vs 跳轉窗口的 key mapping noremap <C-j> <C-W>j noremap <C-k> <C-W>k noremap <C-h> <C-W>h noremap <C-l> <C-W>l : 7. 跳轉到特定的行號。 XXG : 8. 對選出的多行進行排序。 我會用 V 選擇所需的行,並且 !sort : 9. 搜索普通字元串, 或用正則表達式搜索, 然後重複上一次的搜索。 幹忘了,是 &: 10. 基于框選或某個模式匹配的結果, 臨時創建多個光標, 並行地在多個光標處編輯文本 認輸 : 11. 顯示當前項目的編譯錯誤。 : 12. 跑一下當前項目的測試。 如果 C 的話使用 :make,再開 quickfix list 通常其他語言包也會支援,可以參考我的文章 #1VMmL8ym (Editor) 如果是 real time lint,我使用 LSP,現在很多 LSP plugin 可以使用 : 13. 能不能不用滑鼠/觸控板完成上面所有的任務? 為了不用滑鼠,自虐,blame 了一下發現,下面的設定我竟然 2017 就塞了 nnoremap <Left> <Nop> nnoremap <Right> <Nop> nnoremap <Up> <Nop> nnoremap <Down> <Nop> : 我用 vim, 8 我做不到 用內建的東西沒幾個人做得到呀,我塞了一堆自己需要的 plugin 感謝大大發出此文,讓板上能熱絡點 偷偷廣告一下自己的 vim 文章,希望有更多人看了文章來交流 https://amikai.github.io/tags/vim/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.17.112 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Editor/M.1601866712.A.041.html ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 10:59:27 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:01:00 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:02:14 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:22:04 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:24:15 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:26:47 ※ 編輯: as23041248 (61.231.17.112 臺灣), 10/05/2020 11:27:43
文章代碼(AID): #1VUelO11 (Editor)
文章代碼(AID): #1VUelO11 (Editor)