Vim 使用基本操作总结

Vim 使用经验总结

Vim 是一个强大的文本编辑器,以其高效的键盘操作和灵活的编辑功能而闻名("神之编辑器")。掌握 Vim 的基本操作可以显著提高编程和文档编辑的效率。以下是笔者总结的一些常用的 Vim 操作技巧及其应用示例,助你快速成为 Vim 大神。

"If all you have is a hammer, everything seems to be a nail. "

------Robert Sedgewick


1. 一键交换两个单词

假设光标在 helolo 上,想把 o 和后面的 l 交换位置:

vim 复制代码
:normal xp

解释:

  • x 删除光标所在字符。
  • p 粘贴删除的字符在后面。

2. 按语法高亮快速跳转

光标在某个括号内,想快速跳到匹配的括号:

vim 复制代码
% 

惊艳:

  • % 会在括号、引号等配对符号之间跳转。

3. 批量注释代码

快速给多行代码加上注释:

vim 复制代码
Ctrl + v        # 进入可视块模式
选择多行        # 使用 j 或 k 选择
I               # 插入模式
#               # 输入注释符号
Esc             # 退出,注释自动加到所有行

亮点: 可视块模式实现批量编辑,效率爆表!


4. 粘贴时保持缩进对齐

在 Vim 中粘贴外部内容时,通常会破坏原有缩进。解决方法:

vim 复制代码
:set paste

粘贴完成后再关闭:

vim 复制代码
:set nopaste

妙处: 再也不用担心粘贴代码时乱掉的缩进了。


5. 快速重复上次的操作

想重复刚才做的任何操作,只需按:

vim 复制代码
.

示例:

  • 删除一行后按 .,会重复删除下一行。

6. 快速替换指定单词

假设想把当前文件中所有 foo 替换为 bar

vim 复制代码
:%s/foo/bar/g

高能点:

  • :s 是替换命令,% 表示全文件范围。
  • g 表示替换所有匹配,而不仅仅是每行的第一个。

7. 超高效的多文件编辑

  1. 打开多个文件:

    bash 复制代码
    vim file1 file2 file3
  2. 在文件之间切换:

    vim 复制代码
    :n  # 下一个文件
    :N  # 上一个文件
    :ls # 列出所有文件缓冲区
    :b 2 # 切换到缓冲区 2

8. 打造自己的快捷键

让 Vim 变得更贴合自己的需求,例如:

vim 复制代码
:nnoremap <leader>w :w<CR>

效果:\w 保存文件,比输入 :w 快得多。


9. 使用寄存器粘贴历史

想粘贴之前删除的某段内容?用 " 调出寄存器:

vim 复制代码
"0p    # 粘贴最近一次删除的内容
"1p    # 粘贴倒数第二次删除的内容

10. Vim 的强大插件系统

  1. 安装插件管理器:

    • 使用 vim-plug

      bash 复制代码
      curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
      https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  2. 编辑配置文件:

    vim 复制代码
    call plug#begin('~/.vim/plugged')
    Plug 'preservim/nerdtree'       " 文件浏览器
    Plug 'junegunn/fzf.vim'         " 模糊查找
    call plug#end()
  3. 安装插件:

    vim 复制代码
    :PlugInstall

11. 永不丢失的撤销历史

  1. 开启持久化撤销:

    vim 复制代码
    :set undofile
  2. 配置撤销文件保存路径:

    vim 复制代码
    set undodir=~/.vim/undo

亮点: 即使关闭 Vim 后重新打开文件,撤销历史依然存在。


12. 查找替换

在 Vim 中,你可以使用查找替换命令来快速替换文本。

  • :%s/foo/bar/g:在整个文件范围内(%)查找foo并替换为bar,替换所有出现的匹配项(g)。
示例:
  • 将文档中所有的 cat 替换为 dog
cpp 复制代码
  :%s/cat/dog/g
  • 将每行中的第一个 apple 替换为 orange:
cpp 复制代码
:%s/apple/orange/

13. 复制(Yank)

复制操作在 Vim 中被称为"yank"。

  • y^:复制从当前位置到行首的内容。
  • y$:复制从当前位置到行尾的内容。
  • yw:复制一个单词。可以使用 nyw 复制多个单词,n 为数字。
  • yG:复制到文件末尾。使用 nyG 可复制到第 n 行。
示例:

复制接下来的三个单词:

cpp 复制代码
y3w

复制到文档的末尾:

cpp 复制代码
yG

14. 剪切(Delete)

剪切操作会删除选定的文本并将其存储在缓冲区中。

  • d:剪切选定块到缓冲区。
  • dd:剪切整行。
  • d^:剪切到行首。
  • d$:剪切到行尾。
  • dw:剪切一个单词。
  • dG:剪切到文件末尾。
示例:

剪切当前行:

cpp 复制代码
dd

剪切从当前行到第 10 行:

cpp 复制代码
d10G

15. 粘贴

粘贴命令用于将缓冲区的内容插入到当前位置。

  • p:在光标后粘贴(若是整行,则粘贴到下一行)。
  • P:在光标前粘贴(若是整行,则粘贴到上一行)。
示例:

在当前行后粘贴之前复制或剪切的文本:

cpp 复制代码
p

在当前行前粘贴:

cpp 复制代码
P

16. 注释多行

在 Vim 中注释多行代码可以通过块选择模式或替换命令来实现。

方法一:块选择模式

  1. ESC 进入命令模式。
  2. Ctrl+V 进入 VISUAL BLOCK 模式。
  3. 使用箭头键选择需要注释的行。
  4. Shift+is 进入插入模式。
  5. 输入注释符号(如 #)。
  6. 再次按 ESC 完成注释。

方法二:替换命令

插入注释:

ESC 进入命令模式。

输入以下命令,指定起始行和结束行:

cpp 复制代码
:起始行号,结束行号s/^/注释符/g
示例:

对第 14 到 18 行加上 # 注释:

cpp 复制代码
:14,18s/^/#/g

总结

Vim 的骚操作远不止这些,只要你深入探索,就能挖掘出更多宝藏;这些操作中也许不经意间就能极大地改善我们的工作流。愿这些 Vim 技巧让你进一步解放自己的双手,从容应对各种编辑任务!记住,让 Vim 更强大,只有想不到,没有做不到!


本专栏所有文章包含全部可运行代码。欢迎大家支持、关注!

作者 :计算小屋
个人主页计算小屋的主页

相关推荐
万维——组态1 小时前
web组态可视化编辑器
前端·物联网·低代码·编辑器·流程图·组态
susu10830189113 小时前
vi或vim进行替换
linux·编辑器·vim
Hu_go__3 小时前
vim的使用
linux·编辑器·vim
PythonFun5 小时前
Python读取Excel批量写入到PPT生成词卡
python·powerpoint·excel
liuyouzhang7 小时前
pdf文件中的表格无损提取方案(pdf转Excel),非OCR
pdf·excel
Eiceblue7 小时前
用Python在Excel工作表中创建、修改及删除表格区域
开发语言·vscode·python·pycharm·数据分析·excel
BY-组态8 小时前
web组态可视化编辑器
前端·物联网·开源·编辑器·流程图·web组态
神洛华8 小时前
Y3编辑器教程6:触发器进阶案例
编辑器
JavonPeng8 小时前
Qt Creator 自定义主题和编辑器风格(vscode风格)
vscode·qt·编辑器
Dxy12393102168 小时前
python如何获取excel单元格文字是否加粗
开发语言·python·excel