Vim Configuration
前言¶
[1] Vscode 编辑器之神 <=> Vim 神之编辑器 [2] 众所周知Vim是程序员写代码的“大杀器” [3] 虽然Vim是公认的难学,但是一旦你熟练使用,它将使你的写代码效率提升百倍
文章定位¶
- 这是我的Vim学习指南,包含初期“半原生”配置、基本键位语法、最终配置成果
- 本文是一份面向零基础的新手教程,内容极为基础,但是学习顺序因人而异
学习指南¶
- 基本的命令行和配置文件要相当清楚
- 先学习一些Vim的基础知识(看Tutorial即可,时间成本20min),再了解有关配置信息(多看几份“高手”的Vimrc配置文件,从中提炼,时间成本30min)
- 学习相关键位,自定义一套属于自己的“华山剑法”
- 日常生活中多加练习,在刻意练习Vim的阶段,建议将Vim作为写代码生活的“唯一伴侣”,实在没办法再找Vscode“红杏出墙”hh
- 建议整理出属于自己的Vim文档,可以拿本文作为一个参考模板,有利于归纳总结与快速查询
- 共计入门学习时长约10+小时
推荐资料¶
- 个人认为最适合新手入门的讲解: 一份“接地气”的Vim入门视频
- 新手入门后可以小试牛刀,看看进阶:“接地气”后记
- 个人认为最系统的讲解:A-Missing-Semester_Vim_Video
- 一份深入了解Vim配置信息的资源(大佬专用orz):Learn_Vim_Script_the_Hard_Way
本文配置说明¶
- 配置设备:MacbookPro Sonoma14.0
- 键盘映射:美式键盘
- vim位置:/opt/homebrew/bin/vim
- python3位置:/opt/homebrew/bin/python3
我的半原生Vim配置¶
在主文件夹下:vim .vimrc
下面这份配置清单展示的是另一台在电脑上的配置文件
Linux root-hbx 6.5.0-17-generic #17~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 16 14:32:32 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
root-hbx¶
description: Notebook product: 21CY (LENOVO_MT_21CY_BU_idea_FM_ThinkBook 16 G4+ IAP) vendor: LENOVO version: ThinkBook 16 G4+ IAP serial: YX04FKHS width: 64 bits capabilities: smbios-3.3.0 dmi-3.3.0 smp vsyscall32
VimL | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 |
|
Vim入门讲解¶
- Vim操作命令的本质:<\option>[命令]<\motion>
- 我的日常工作流中,主要使用五种模式:命令模式(Command Mode)、输入模式(Insert Mode)、可视化模式(Visual Mode)和命令行模式(Command-Line Mode)、搜索模式(Search Mode)
命令模式 [Command Mode]¶
i
-- 切换到输入模式,在光标当前位置开始输入文本x
-- 删除当前光标所在处的字符:
-- 切换到 底线命令模式,以在最底一行输入命令\
-- 切换到 底线搜索模式,以在最底一行输入命令a
-- 进入插入模式,在光标下一个位置开始输入文本o
-- 在当前行的下方插入一个新行,并进入插入模式O
-- 在当前行的上方插入一个新行,并进入插入模式dd
-- 删除当前行yy
-- 复制当前行p
-- 粘贴剪贴板内容到光标下方P
-- 粘贴剪贴板内容到光标上方u
-- 撤销上一次操作Ctrl + r
-- 重做上一次撤销的操作:w
-- 保存文件:q
-- 退出 Vim 编辑器:q!
-- 强制退出Vim 编辑器,不保存修改
我认为在Command_Mode比较“偷懒”的操作:
快速跳转到行首和行末
0:跳转到行首 $:跳转到行尾 快速跳转到文首和文末
gg:跳转到文档首 shift+g(<=>G):跳转到文档尾
d: 删除
d→: 向右边delete一个字符 d←: 向左边delete一个字符 d3→:向右边delete 3个字符 d3←:向左边delete 3个字符
y: 复制
y→: 向右边yank一个字符 y←: 向左边yank一个字符 y3→:向右边yank 3个字符 y3←:向左边yank 3个字符
??:对这一行执行某一操作
dd: 删除[<=>剪切]这一行(delete) yy: 复制这一行(yank) p: 粘贴这一行(paste)
三个单词锁定的操作
- w: 直接跳转到同一行内的下一个单词首字母 / 直至当前光标所在单词末尾
- b: 直接跳转回同一行内的上一个单词首字母 / 回溯至当前光标所在单词开头
- i: 针对词中
c: 改变(<=>d + into->WritingMode)
c3→:向右边delete 3个字符,随后进入Writing模式 cw: 删除当前光标到该单词末之间的全部字符
场景1:(eg: The op wi|ndows is ... 欲删除单词windows并瞬间改写它) - ciw: 光标在单词中间时改变单词 - bcw: 光标回退到单词开头,再执行cw操作(上文)
场景2:(eg: "The op wi|ndows" 欲改写” “内所有的内容) - ci" : 删除" "内所有内容并进行改写
场景3:(eg:
欲改写<>内所有的内容) - ci< : 删除< >内所有内容并进行改写 其余类比推理!
f:寻找
f?: 寻找从当前光标往后,第一个是“字符?”的位置 yf?: 从当前光标的位置 一直复制到 "字符?"所在的位置 df?: 从当前光标的位置 一直删除到 "字符?"所在的位置 cf?: 从当前光标的位置 一直删除到 "字符?"所在的位置,并进入Writing_Mode
输入模式 [Insert Mode]¶
在命令模式下按下 i 就进入了输入模式,使用 Esc 键
可以返回到普通模式。
跟正常的输入一模一样,略之!
可视化模式 [Visual Mode]¶
v : 普通可视模式,选中文本(见Appendix) shift + v (<=> V): 行可视模式,选中行文本(见Appendix)
底线命令模式 \ 命令行模式 [Command-Line Mode]¶
:w
:保存文件:q
:退出 Vim 编辑器:wq
:保存文件并退出 Vim 编辑器:q!
:强制退出Vim编辑器,不保存修改
底线搜索模式 [Search-Line Mode]¶
/[搜索内容]
:在全文内进行搜索[指定内容]
最终配置清单¶
VimL | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 |
|
Vim中常见的Mac键盘按键在字母表示法中表示¶
- Control键(<\C>):
- 在Vim中,使用
<C-[键]
来表示。例如,<C-c>
表示按下Control键和'C'键
- 在Vim中,使用
- Option键(<\M>):
- 在Vim中,通常使用
<M-[键]
来表示。例如,<M-a>
表示按下Option/Alt键和'a'键
- 在Vim中,通常使用
- Shift键(<\S>):
- 在Vim中,使用
<S-[键]
来表示。例如,<S-a>
表示按下Shift键和'a'键
- 在Vim中,使用
- Command键(<\D>):
- 在Mac中,Command键有时也被称为Super键。在Vim中,使用
<D-[键]
来表示。例如,<D-a>
表示按下Command键和'a'键
- 在Mac中,Command键有时也被称为Super键。在Vim中,使用
- Function键(<\Fn>):
- Vim通常不会直接捕捉功能键,因此在Vim中,你可能需要使用其他键位的组合来模拟功能键的操作
- 四个方向键:
<\Up> <\Down> <\Left> <\Right>
配置插件的方式¶
[1] 将这一堆插件放进
call plug#begin('~/.vim/plugged')
与call plug#end()
之间 [2] 部分插件需要激活,比如YouComplateMeASK: 如何激活YouComplateMe? 1. cd ~/.vim/plugged " 进入所有插件的安装文库 2. cd YouComplateMe " 进入YouComplateMe库 3. python3 install.py " 安装install.py 4. cd ~ " 回到主文件夹 5. vim .vimrc 6. 将路径改为python3本地路径:
let g:ycm_python_interpreter_path = "/opt/homebrew/bin/python3"
andlet g:ycm_python_binary_path = "/opt/homebrew/bin/python3"
[3] 激活成功,可以顺利使用了!