Re: the pragmatic programmer 提到的操作

楼主: as23041248 (KAIKAIKAI)   2020-10-05 10:58:30
※ 引述《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/

Links booklink

Contact Us: admin [ a t ] ucptt.com