Vim文本编辑器基本操作

Vim(Vi IMproved)是一款强大的文本编辑器,广泛用于Unix和Linux系统。它具有高度可定制性和丰富的功能集,使其成为程序员、系统管理员和文本编辑爱好者的首选工具之一。

1、模式

正常模式(Normal Mode)

  • 正常模式是 Vim 的默认模式,它用于导航、编辑、复制和粘贴文本,以及执行各种命令。

  • 在正常模式下,按键被解释为命令,而不是直接插入文本。

  • 用于导航的键包括 h(左)、j(下)、k(上)、l(右),以及其他命令如 w(向前移动一个词)、b(向后移动一个词)、gg(跳转到文件开头)和 G(跳转到文件末尾)等。

  • 用于删除和复制文本的命令包括 x(删除字符)、dd(删除整行)、yy(复制整行)等。

  • 可以使用 : 进入命令模式,执行各种命令,如保存文件 :w、退出 :q 等。

插入模式(Insert Mode)

  • 插入模式用于输入文本,类似于普通文本编辑器的行为。

  • 进入插入模式的方式包括:

    • i:在光标前插入文本。

    • I:在当前行的开头插入文本。

    • a:在光标后插入文本。

    • A:在当前行的末尾插入文本。

    • o:在当前行的下方插入新行并进入插入模式。

    • O:在当前行的上方插入新行并进入插入模式。

  • 从插入模式返回正常模式通常使用 Esc 键。

可视模式(Visual Mode)

  • 可视模式允许选择文本块以进行操作,如复制、删除或替换。

  • 进入可视模式的方式包括:

    • v:按字符选择。

    • V:按行选择。

    • Ctrl + v:按块选择。

  • 一旦选择文本块,可以执行命令来操作选定的文本。

命令模式(Command-Line Mode)

  • 在正常模式下,键入冒号 : 进入命令模式,用于执行各种命令。

  • 常见的命令包括:

    • :w:保存文件。

    • :q:退出 Vim。

    • :q!:强制退出 Vim,放弃未保存的更改。

    • :wq:x:保存并退出。

    • :e:重新加载文件。

    • :r:在当前位置插入另一个文件的内容。

    • :set:配置 Vim 选项。

替换模式(Replace Mode)

  • 替换模式用于覆盖文本,逐字符替换已有文本。

  • 进入替换模式的方式包括:

    • R:按字符替换。

    • r:按需替换单个字符。

2、切换模式

从正常模式切换到插入模式

  • 插入模式用于在文本中输入或编辑内容,类似于普通文本编辑器的行为。

  • 在正常模式下,可以使用以下命令来切换到插入模式:

    • i:在光标前插入文本。

    • I:在当前行的开头插入文本。

    • a:在光标后插入文本。

    • A:在当前行的末尾插入文本。

    • o:在当前行的下方插入新行并进入插入模式。

    • O:在当前行的上方插入新行并进入插入模式。

  • 一旦进入插入模式,可以自由地键入文本,直到按下 Esc 键返回正常模式。

从正常模式切换到可视模式

  • 可视模式允许选择文本块以进行操作,如复制、删除或替换。

  • 在正常模式下,可以使用以下命令来切换到可视模式:

    • v:按字符选择。

    • V:按行选择。

    • Ctrl + v:按块选择。

  • 一旦进入可视模式,可以使用导航键来选择文本块,然后执行命令来操作选定的文本。

从插入模式返回正常模式

  • 从插入模式返回正常模式通常使用 Esc 键。按下 Esc 键会立即退出插入模式,并将光标定位回正常模式下的当前位置。

3、导航

基本导航命令

  • 使用以下键在正常模式下进行基本的导航:

    • h:将光标向左移动一个字符。

    • j:将光标向下移动一行。

    • k:将光标向上移动一行。

    • l:将光标向右移动一个字符。

  • 这些键在键盘上排列成一个类似箭头键的形状,以便记忆。

词级导航

  • Vim 允许以词为单位移动光标,而不是逐字符移动。以下是词级导航的常见命令:

    • w:将光标向前移动到下一个单词的开头。

    • b:将光标向后移动到当前单词的开头。

    • e:将光标移动到当前单词的末尾。

    • ge:将光标移动到前一个单词的末尾。

行级导航

  • 可以使用以下命令在行级别上导航:

    • 0(零):将光标移到当前行的开头。

    • $:将光标移到当前行的末尾。

    • ^:将光标移到当前行的第一个非空字符。

文件级导航

  • 可以使用以下命令在文件级别上导航:

    • gg:将光标移到文件的第一行。

    • G:将光标移到文件的最后一行。

    • :<行号>:将光标移到指定行号。

滚动导航

  • 可以使用以下命令进行滚动导航:

    • Ctrl + u:向上滚动半屏。

    • Ctrl + d:向下滚动半屏。

    • Ctrl + b:向上滚动一屏。

    • Ctrl + f:向下滚动一屏。

搜索导航

  • 搜索命令可以帮助您快速定位文本。在正常模式下,按 / 进入搜索模式,输入要搜索的文本,然后按 Enter 键开始搜索。使用 n 键和 N 键在搜索结果之间移动。

书签导航

  • 可以使用书签来标记文本的特定位置,然后轻松跳转到这些位置。以下是一些书签命令:

    • m<标记>:将光标位置标记为指定的 <标记>

    • ' 或 ````:跳转到上一个书签。

    • `:<标记>:跳转到指定的书签。

4、编辑文本

删除文本

  • 在正常模式下,可以使用以下命令来删除文本:

    • x:删除光标下的字符。

    • dd:删除整行。

    • D:删除从光标位置到行末的文本。

    • :n1,n2d:删除指定行范围(n1 到 n2)的文本。

复制和剪切文本

  • 在正常模式下,可以使用以下命令来复制和剪切文本:

    • yy:复制当前行。

    • y$:复制从光标位置到行末的文本。

    • p:粘贴之前复制或剪切的文本。

    • :n1,n2y:复制指定行范围(n1 到 n2)的文本。

    • :n1,n2d:剪切指定行范围(n1 到 n2)的文本。

粘贴文本

  • 在正常模式下,使用 p 命令可以粘贴最近复制或剪切的文本。粘贴操作会在光标位置后方插入文本。

替换文本

  • 在正常模式下,可以使用以下命令来替换文本:

    • r<字符>:用指定字符替换光标下的字符。

    • R:进入替换模式,可以连续替换多个字符,按 Esc 退出替换模式。

插入文本

  • 插入模式用于在文本中插入新内容。可以在正常模式下使用以下命令进入插入模式:

    • i:在光标前插入文本。

    • I:在当前行的开头插入文本。

    • a:在光标后插入文本。

    • A:在当前行的末尾插入文本。

    • o:在当前行的下方插入新行并进入插入模式。

    • O:在当前行的上方插入新行并进入插入模式。

撤销和重做

  • 在正常模式下,可以使用以下命令来撤销和重做操作:

    • u:撤销最后的操作。

    • Ctrl + r:重做操作(撤销的反操作)。

全局替换

  • 可以使用 :s 命令在文件中进行全局替换操作。例如,:s/old/new/g 将文件中的所有 old 替换为 new

多光标编辑

  • Vim 支持多光标编辑,可以使用 Ctrl + v 进入可视块模式,选择多个光标位置,然后同时编辑这些位置的文本。

5、搜索和替换

搜索文本:

  • 正向搜索:在正常模式下,按 / 进入搜索模式。输入要搜索的文本,然后按 Enter 键开始搜索。使用 n 键移动到下一个匹配项,使用 N 键移动到上一个匹配项。

  • 反向搜索:在正常模式下,按 ? 进入反向搜索模式。输入要搜索的文本,然后按 Enter 键开始反向搜索。使用 n 键移动到上一个匹配项,使用 N 键移动到下一个匹配项。

  • 高亮匹配项:默认情况下,Vim 会高亮匹配的文本。若要关闭或打开高亮显示,可以在正常模式下使用 :set hlsearch:set nohlsearch 命令。

  • 搜索选项:可以在搜索命令中使用一些选项,如 /pattern/i 可以忽略大小写,/pattern/n 可以禁用正则表达式匹配。

  • 搜索下划线和其他特殊字符:如果要搜索下划线等特殊字符,可以使用 \ 进行转义,例如 /my\_variable/

  • 使用寻找命令:在正常模式下,按 * 可以寻找光标下的单词,然后使用 # 寻找上一个匹配项。

替换文本:

  • 替换当前匹配项:在正常模式下,可以使用 :s 命令来替换当前匹配项。例如,要将当前单词 old 替换为 new,可以输入 :s/old/new/

  • 全局替换:若要替换文件中的所有匹配项,可以在替换命令中使用 g 标志,如 :%s/old/new/g

  • 替换并确认:若要逐个确认替换每个匹配项,可以在替换命令中使用 c 标志,如 :%s/old/new/gc

  • 替换范围内的文本:可以使用 :n1,n2s 命令来替换指定行范围内的文本。例如,:10,20s/old/new/g 会在第 10 行到第 20 行之间进行全局替换。

  • 替换回退:Vim 会在替换操作之前自动创建一个回退点,以便可以撤销替换。在正常模式下,可以使用 u 命令来撤销替换。

  • 替换确认:在替换模式下,可以按下 y 来确认替换当前匹配项,按下 n 来跳过当前匹配项。

  • 替换和保存:如果想在替换文本的同时保存文件,可以使用 :w 命令,如 :%s/old/new/g | w

6、多窗口

打开和关闭窗口:

  • 水平分屏:在正常模式下,可以使用以下命令来创建水平分屏窗口:

    • :split <文件路径>:创建水平分屏窗口并打开指定文件。

    • :splitCtrl + w 之后按 s:创建水平分屏窗口,将当前文件分为上下两个部分。

  • 垂直分屏:在正常模式下,可以使用以下命令来创建垂直分屏窗口:

    • :vsplit <文件路径>:创建垂直分屏窗口并打开指定文件。

    • :vsplitCtrl + w 之后按 v:创建垂直分屏窗口,将当前文件分为左右两个部分。

  • 关闭窗口

    • 在窗口中,可以使用以下命令关闭当前窗口:

      • :q:关闭当前窗口。

      • :q!:强制关闭当前窗口并放弃更改。

      • :wq:x:保存并关闭当前窗口。

    • 若要在不关闭 Vim 实例的情况下关闭所有窗口,请使用 :qall

切换窗口:

  • 切换焦点:在多窗口环境中,可以使用以下命令切换焦点到不同的窗口:

    • Ctrl + w,然后按 Ctrl + w:循环切换焦点到下一个窗口。

    • Ctrl + w,然后按 hjkl:将焦点分别切换到左、下、上、右的窗口。

  • 切换窗口布局:可以使用以下命令更改窗口布局:Ctrl + w,然后按 R:旋转当前窗口布局,将水平分屏转为垂直分屏或反之。

调整窗口大小:

  • 调整窗口大小:在多窗口中,可以使用以下命令调整窗口大小:

    • Ctrl + w,然后按 <>:增加或减少当前窗口的宽度。

    • Ctrl + w,然后按 +-:增加或减少当前窗口的高度。

  • 均等分屏:如果希望均等分割窗口,可以使用以下命令:Ctrl + w,然后按 =:将所有窗口均等分布在 Vim 窗口中。

多文件操作:

  • 打开多个文件:在 Vim 中可以同时打开多个文件。例如,可以在命令行中运行 vim file1.txt file2.txt 来同时打开两个文件。

  • 在窗口之间复制粘贴:在多窗口中,可以使用 :sp:vsp 命令来将一个窗口中的内容复制到另一个窗口。

7、配置文件

创建和编辑配置文件:

  • 创建配置文件:如果系统上尚不存在 .vimrc 文件,可以使用文本编辑器创建一个。在终端中运行以下命令:touch ~/.vimrc

  • 编辑配置文件:使用文本编辑器打开 .vimrc 文件,例如:vim ~/.vimrc,可以在配置文件中添加和编辑各种配置选项,以自定义 Vim 的行为。

配置选项:

  • 缩进设置:设置 tabstopshiftwidthexpandtab 选项来控制缩进的方式。例如:set tabstop=4 set shiftwidth=4 set expandtab

  • 行号和列号:启用行号和列号的显示,使得在编辑时更容易定位位置。例如:set number set relativenumber

  • 自动缩进:启用自动缩进,以便在插入模式中自动进行适当的缩进。例如:set autoindent

  • 语法高亮:启用语法高亮以提高代码的可读性。例如:syntax enable

  • 主题和颜色:使用不同的颜色方案来改变 Vim 的外观。例如:colorscheme desert

  • 搜索设置:配置搜索选项,如忽略大小写、高亮显示匹配项等。例如:set ignorecase set smartcase set hlsearch

  • 显示设置:配置 Vim 显示的一些选项,如行末空格可视化、显示光标当前位置等。例如:set list set showmatch

  • 键映射和快捷键:创建自定义键映射和快捷键,以加快编辑操作。例如:nnoremap <C-n> :NERDTreeToggle<CR>

  • 插件管理器设置:如果使用插件管理器(如 vim-plug、Vundle 等),可以在配置文件中添加插件列表和设置。例如:

call plug#begin('~/.vim/plugged')

Plug 'tpope/vim-fugitive'

call plug#end()

保存和应用配置:

  • 保存配置文件:在编辑完 .vimrc 文件后,使用 :w 命令保存更改。

  • 应用配置:在 Vim 中编辑 .vimrc 文件后,可以使用以下命令使配置生效,而无需退出 Vim::source ~/.vimrc,或者可以重新启动 Vim 以应用新的配置。

8、插件

安装插件:

  • Vim-Plug:Vim-Plug 是一个流行的插件管理器,易于安装和使用。可以在 .vimrc 文件中添加插件列表,然后运行 :PlugInstall 命令来安装插件。

  • Vundle:Vundle 是另一个常见的插件管理器,它也使用 .vimrc 配置文件来管理插件。可以使用 :PluginInstall 命令来安装插件。

  • Pathogen:Pathogen 是一种更传统的插件管理器,它允许将每个插件放置在单独的目录中,并通过简单地将插件目录添加到 Vim 的运行时路径中来加载插件。

常见插件用途:

  • 代码编辑插件

    • 代码编辑插件可用于增强编程体验,包括语法高亮、代码折叠、自动完成、代码片段、代码导航等功能。一些流行的代码编辑插件包括:

      • vim-airline:自定义状态栏。

      • YouCompleteMe:强大的自动完成和代码建议插件。

      • NerdTree:文件树浏览器。

  • 主题和外观插件

    • 主题和外观插件用于改变 Vim 的外观,包括颜色方案、状态栏、行号等。一些主题插件包括:

      • gruvbox:受欢迎的暗色调主题。

      • solarized:另一个受欢迎的颜色方案。

      • lightline:轻量级状态栏插件。

  • 文件管理和导航插件

    • 文件管理和导航插件用于更轻松地浏览和管理文件系统。一些文件管理插件包括:

      • NERDTree:文件树浏览器。

      • CtrlP:快速文件搜索和切换插件。

      • fzf:模糊文件搜索和快速查找插件。

  • 版本控制插件

    • 版本控制插件用于与版本控制系统(如 Git)集成,以在 Vim 中管理代码库。一些版本控制插件包括:

      • vim-fugitive:强大的 Git 插件。

      • GitGutter:显示行内 Git 状态信息。

  • 文本处理和编辑插件

    • 文本处理和编辑插件用于执行各种文本操作,如文本搜索、替换、排序和格式化。一些文本处理插件包括:

      • Ag:快速搜索文本。

      • Surround:快速添加、更改和删除文本周围的符号。

      • vim-easymotion:快速移动光标。

9、在线帮助

:help 命令:

  • 在 Vim 中,可以随时使用 :help 命令来访问在线帮助系统。只需在正常模式下键入 :help,然后输入想要了解的主题、命令或选项的名称,然后按 Enter 键。例如:

  • :help:打开帮助索引。

  • :help :w:查看 :w 命令的帮助。

  • :help insert-mode:查看插入模式的帮助。

帮助索引

  • :help 命令将打开帮助索引,该索引包含了关于 Vim 的广泛文档。可以使用以下键盘命令来导航和查找帮助文档:

  • 使用上下箭头键或 jk 键在不同主题之间导航。

  • Ctrl + ] 键跳转到当前选定主题的详细信息。

  • Ctrl + t 键返回到上一个主题。

  • 使用 / 键来搜索关键字,然后按 Enter 键查找匹配项。

  • 使用 :q 命令退出帮助系统。

帮助标签页

  • 帮助系统支持多个标签页,允许在不同主题之间切换。以下是一些常用的标签页命令:

  • :help tab-page:打开标签页帮助。

  • :tabnew:help :tabnew:打开新标签页。

  • :tabnext:tabprev:在标签页之间切换。

  • :tabclose:q:关闭当前标签页。

特定主题的帮助

  • 如果知道自己想要查看特定主题的帮助,可以直接使用 :help 命令,后跟主题名称。例如:

  • :help motions:查看有关移动命令的帮助。

  • :help text-objects:查看有关文本对象(如单词、段落等)的帮助。

内置教程

  • Vim 带有一些内置教程,可以通过 :vimtutor 命令启动。这是一个交互式的教程,可以帮助新用户学习 Vim 的基本功能。

离线帮助

  • 如果使用的是 Vim 的源代码分发版本,通常会包含完整的离线帮助文档。这些文档可以在本地查看,无需互联网连接。

这些是 Vim 的基本概念和一些常用命令,Vim 具有丰富的功能和命令,允许用户高效地编辑文本。要充分发挥 Vim 的威力,需要不断练习和学习,并逐渐掌握更高级的功能和定制选项。可以在Vim内部查看帮助文档来深入了解其功能和用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值