Linux vim 基本使用

围巾🧣 2024年09月20日 32次浏览

vim 是一个功能强大的文本编辑器,在 Linux 系统中广泛使用。以下是 vim 的基本使用方法和一些常见操作,如查找和删除等。

1. 打开 vim

vim <文件名>

例如,打开或创建一个名为 example.txt 的文件:

vim example.txt

2. vim 的三种主要模式

  1. 命令模式(Normal mode):进入 vim 时的默认模式,主要用于浏览和操作文本。
  2. 插入模式(Insert mode):用于编辑文本。
  3. 底行模式(Command-line mode):用于执行保存、查找等命令。

3. 模式切换

  • 从命令模式进入插入模式:
    • i:在光标前插入
    • a:在光标后插入
    • o:在当前行下方新建一行并插入
  • 从插入模式回到命令模式:
    • Esc
  • 从命令模式进入底行模式:
    • :(冒号)

4. 移动光标

  • h:向左移动
  • j:向下移动
  • k:向上移动
  • l:向右移动
  • 0:移动到行首
  • $:移动到行尾
  • w:移动到下一个单词开头
  • b:移动到前一个单词开头
  • gg:移动到文件开头
  • G:移动到文件末尾

5. 查找操作

  • 查找字符串:
    • /:在当前文件中向下查找。例如,查找 example
      /example
      
      Enter 进行查找,n 跳到下一个匹配,N 跳到上一个匹配。
    • ?:在当前文件中向上查找。例如,查找 example
      ?example
      
      Enter 进行查找,n 跳到下一个匹配(向上),N 跳到上一个匹配(向下)。
  • 查找并高亮所有匹配:
    • 进入底行模式(:),然后输入:
      :set hlsearch
      
      取消高亮:
      :nohlsearch
      

6. 删除操作

  • 删除单个字符:
    • x:删除光标所在字符
  • 删除当前行:
    • dd
  • 删除到行首:
    • d0
  • 删除到行尾:
    • d$
  • 删除一个单词:
    • dw:删除光标后的一个单词
    • db:删除光标前的一个单词
  • 删除多行:
    • d10d:删除光标所在行及以下 10 行
    • :8,17d:将8-17行全部删除。

7. 复制和粘贴

  • 复制(称为“拷贝”或“yank”):
    • yy:复制当前行
    • y$:复制光标到行尾
    • yw:复制当前单词
    • 5yy:复制当前行及以下 5 行
  • 粘贴:
    • p:在光标后粘贴
    • P:在光标前粘贴

8. 撤销和重做

  • 撤销操作:
    • u:撤销上一次操作
    • U:撤销对当前行的所有修改
  • 重做操作:
    • Ctrl + r

9. 保存和退出

  • 保存文件:
    • :w
  • 退出 vim
    • :q
  • 保存并退出:
    • :wq
  • 强制退出(不保存):
    • :q!
  • 强制保存并退出:
    • :wq!

10. 替换操作

  • 替换当前行的某个字符串:
    :s/旧字符串/新字符串/g
    
    例如,将当前行的 foo 替换为 bar
    :s/foo/bar/g
    
  • 替换整个文件的字符串:
    :%s/旧字符串/新字符串/g
    
    例如,将整个文件中的 foo 替换为 bar
    :%s/foo/bar/g
    
  • 替换时确认每次替换:
    :%s/旧字符串/新字符串/gc
    

11. 行号显示

  • 显示行号:
    :set number
    
  • 隐藏行号:
    :set nonumber
    

12. 常用配置

可以将常用配置添加到 ~/.vimrc 文件中,例如:

set number         " 显示行号
set autoindent     " 自动缩进
set tabstop=4      " Tab 键缩进 4 个空格
set shiftwidth=4   " 每次缩进移动 4 个空格
set expandtab      " 将 Tab 转换为空格
set hlsearch       " 搜索时高亮匹配项
set ignorecase     " 搜索时忽略大小写
set smartcase      " 如果包含大写字母则大小写敏感

通过掌握以上基本操作,你可以更高效地使用 vim 进行文本编辑。如果有任何其他特定需求,也可以随时提出。