vi还是vim,教你快速上手linux下的文本编辑器

2023-08-08 09:30:03 浏览数 (2)

vi和vim的主要区别

  • vi:一款老牌的文本编辑器,是Unix系统中自带的编辑器之一。它是可视化编辑器之前推出的最早的编辑器,支持简单的文本编辑功能。
  • vim:vi的增强版本,是vi的向下兼容产品。它拥有比vi更多的功能和命令,如:语法高亮显示、代码补全、多级撤销、分屏编辑等,并且支持丰富的插件扩展。

为什么倾向于使用vim?

  1. 强大的编辑功能:vim提供了丰富的编辑功能和命令,并支持自定义配置,可以根据个人喜好和工作需求进行调整。它支持正则表达式搜索、替换,可以快速编辑和处理大文件。
  2. 高效的操作方式:vim是一款纯键盘驱动的编辑器,使用者可以通过按键组合执行各种操作,而无需频繁地使用鼠标。这种纯键盘的操作方式更加高效,可以节省时间和精力。
  3. 广泛的应用范围:vim是跨平台的编辑器,可以在多个操作系统上使用,如Unix、Linux、macOS和Windows等。它广泛应用于文本编辑、代码编写、系统管理等众多领域,因此掌握vim可以让我在不同的环境下更加灵活地工作。
  4. 生态系统和插件支持:vim拥有丰富的插件生态系统,可以通过安装和配置插件来扩展功能,满足个人定制化需求。这些插件可提供代码补全、语法检查、版本控制等功能,使得vim成为一款功能强大、可高度定制的编辑器。

vim具有以下重要且无法替代的功能:

  1. 快速导航和定位:vim提供了强大的命令行和键盘快捷键,可快速在文本中导航和定位到指定位置,无需使用鼠标。
  2. 多重撤销和恢复:vim支持多级撤销和恢复,可以随时回退到文本的先前状态,避免了误操作所带来的困扰。
  3. 自动补全和代码片段插入:vim支持自动补全,可以根据已输入的字符进行智能提示,并且可以通过代码片段插入快速生成常用代码结构,提高编写效率。
  4. 强大的搜索和替换功能:vim提供了灵活而高效的搜索和替换功能,可以快速找到并修改指定的文本内容。
  5. 多窗口和分屏编辑:vim可以同时打开多个窗口,支持水平和垂直分屏,方便对多个文件进行同时编辑和比对。
  6. 多语言支持和语法高亮:vim内置了对多种编程语言的支持,并提供了语法高亮功能,可以使代码更易读和易于理解。
  7. 可定制性:vim提供了丰富的配置选项和插件系统,可以根据个人喜好和需求进行灵活的定制,使其适应不同的编辑需求。

提高工作效率的快捷键

以下是一些常用的vim快捷键和用途:

  1. 光标移动:
    • h, j, k, l:分别向左、下、上、右移动光标。
    • w:移动到下一个单词的开头。
    • b:移动到前一个单词的开头。
    • 0:移动到当前行的开头。
    • $:移动到当前行的结尾。
    • gg:移动到文档的开头。
    • G:移动到文档的结尾。
    • Ctrl f:向前滚动一页。
    • Ctrl b:向后滚动一页。
  2. 文本编辑:
    • i:在当前光标位置之前插入文本。
    • a:在当前光标位置之后插入文本。
    • o:在当前光标所在行的下方插入新行。
    • O:在当前光标所在行的上方插入新行。
    • dd:删除当前光标所在行。
    • yy:复制当前光标所在行。
    • p:粘贴复制的文本。
    • u:撤销上一次操作。
    • Ctrl r:重做上一次撤销的操作。
  3. 查找和替换:
    • /:进入查找模式。
    • ?:反向查找模式。
    • n:在查找模式下,移动到下一个匹配项。
    • N:在查找模式下,移动到上一个匹配项。
    • :s/foo/bar/g:将当前行中的所有foo替换为bar。
    • :%s/foo/bar/g:将整个文档中的所有foo替换为bar。
  4. 文件操作:
    • :e <文件路径>:打开指定的文件。
    • :w:保存当前文件。
    • :q:关闭当前文件。
    • :q!:放弃对当前文件的修改并关闭。
    • :wq:保存对当前文件的修改并关闭。
    • :sp <文件路径>:在新的水平分割窗口中打开指定文件。
    • :vsp <文件路径>:在新的垂直分割窗口中打开指定文件。

以上只是一些常用的vim快捷键示例,使用这些快捷键可以在编辑过程中快速导航、编辑文本和执行文件操作,提高工作效率。

文本查找和替换的技巧

以下是几个主要的例子:

  1. 使用/命令进行正向查找:
    • 输入/keyword,其中"keyword"是你想要查找的文本。按下回车键后,vim会定位到第一个匹配的位置。
    • 使用n键可以跳转到下一个匹配项,使用N键则可以跳转到上一个匹配项。
  2. 使用?命令进行反向查找:
    • 输入?keyword,其中"keyword"是你想要查找的文本。按下回车键后,vim会定位到最后一个匹配的位置。
    • 同样可以使用nN键进行下一个和上一个匹配项之间的跳转。
  3. 使用:%s/target/replacement/g命令进行全局替换:
    • 输入:%s/target/replacement/g,其中"target"是你想要替换的文本,"replacement"是要替换成的文本。
    • 按下回车键后,vim会将每个匹配到的"target"替换成"replacement"。
    • 如果不想全局替换,可以移除命令中的"g"字符,这样只会替换每行中的第一个匹配项。
  4. 在替换命令中使用分组和引用:
    • 使用圆括号来创建匹配的分组。
    • 在替换命令中使用12等来引用分组,可以在替换过程中使用匹配到的文本的一部分。
    • 例如,使用:%s/(yifan)/1 online/g来将"yifan"后面的空格替换为"online"。
  5. 使用*命令进行当前单词的快速查找:
    • 将光标定位在某个单词上,然后按下*键,vim会定位到下一个出现该单词的位置。
    • 继续按下*键可以跳转到下一个匹配项。

语法高亮、代码自动完成以及格式化的插件

  1. 语法高亮:Vim本身已经内置了对多种编程语言的语法高亮支持。可以通过在.vimrc文件中设置syntax on来启用语法高亮功能。
  2. 代码自动完成:
    • Vundle插件管理器:Vundle是一个管理vim插件的工具,可以方便地安装和管理插件。安装Vundle后,在.vimrc文件中配置要安装的插件,例如:Plugin 'Valloric/YouCompleteMe'
    • YouCompleteMe插件:YouCompleteMe是一个功能强大的代码自动完成插件,支持多种编程语言。安装YouCompleteMe插件后,可以根据需要进行配置,并使用快捷键来触发代码自动完成功能。
  3. 代码格式化:
    • vim-autoformat插件:vim-autoformat是一个代码格式化插件,支持多种编程语言的代码格式化,并且可以自定义格式化选项。安装vim-autoformat插件后,可以使用快捷键来格式化代码。

.vimrc文件中,可以添加如下配置来启用上述功能:

代码语言:text复制
syntax on

" 使用Vundle管理插件
set rtp =~/.vim/bundle/Vundle.vim
call vundle#begin()

" 安装插件
Plugin 'Valloric/YouCompleteMe'
Plugin 'Chiel92/vim-autoformat'

call vundle#end()

" YouCompleteMe配置
let g:ycm_filetype_blacklist = {'tagbar': 1}
let g:ycm_key_invoke_completion = '<C-Space>'

" vim-autoformat配置
let g:autoformat_autoindent = 1
let g:autoformat_retab = 0

" 快捷键配置
nnoremap <F2> :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <F3> :YcmCompleter GoToDefinition<CR>
nnoremap <F4> :Autoformat<CR>

以上就是在使用vim进行编程时可以利用的一些插件和功能来实现语法高亮、代码自动完成以及格式化。根据个人的需要,还可以添加其他插件来进一步提升编程体验。

0 人点赞