作者as23041248 (KAIKAIKAI)
看板Editor
标题Re: the pragmatic programmer 提到的操作
时间Mon Oct 5 10:58:30 2020
※ 引述《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://webptt.com/cn.aspx?n=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