Linux使用VIM编辑器的方法

Vim 作为一款功能强大、选项丰富的编辑器,为许多用户所热爱。本文介绍了一些在 Vim 中默认未启用但实际非常有用的选项。虽然可以在每个 Vim 会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在 Vim 的配置文件中配置这些命令。

技巧:快速提高 vim 使用效率的原则与途径

vim 是所有 Unix/Linux 操作系统默认配备的编辑器。因其强大的功能和高效的操作,vim 也成为众多 Unix/Linux 用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开 vim。vim 命令非常多、用法极为灵活,掌握起来有一定的难度。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高 vim 文件编辑效率,从而达到事半功倍的效果。

引言 

Vi 最初是由 Bill Joy 在 1976 年编码实现的。而 Vim (Vi IMproved) 则是改进的 Vi,由 Bram Moolenaar 在 1991 年开发并发布。vim 是所有 Unix/Linux 操作系统默认配备的编辑器。因其强大的功能和高效的操作,vim 也成为众多 Unix/Linux 用户、管理员必须掌握并熟练使用的编辑工具之一。尤其是在没有图形界面的情况下,更是离不开 vim。vim 命令非常多、用法极为灵活,掌握起来有一定的难度。详细介绍 vim 使用方法的文章有很多,因而本文就不一一述及 vim 的诸多功能及命令。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高 vim 文件编辑效率,从而达到事半功倍的效果。本文述及的途径或命令均只针对系统默认配置的 vim。关于 vim 各种定制后的功能不在本文讨论范围之列。(注:本文中提到的所有命令均在 Red Hat Enterprise Linux Server release 6.1 上测试通过。)

Vim 版本的选择 

“工欲善其事,必先利其器”。在 vim 版本的选择上,原则是“能用 Vim 就不要使用 Vi;能用最新版就不要守着旧版本”。Vim 提供的功能和特性要比 Vi 多得多,如语法加亮着色功能等。就使用效果及效率来说,编辑同样的文件,使用 Vim 更胜一筹;就版本来说,新版的往往会修复旧版的一些缺陷及不足。这就要求我们在可能的情况下一定要使用最新版的 Vim。

小技巧:

在 Linux 下,如果以 root 用户登录系统的话,通过 vi 命令打开的 Vim 编辑器往往只加载最基本的功能,像语法加亮着色的功能基本上没有。在 root 用户下使用 Vim 所有功能的技巧是用 vim 命令打开 Vim 编辑器。

开始前的准备

这里所说的选项或配置均位于用户主目录中的 Vim 启动配置文件 .vimrc。 按照下面的说明在 .vimrc 中设置选项:
(注意:vimrc 文件也用于 Linux 中的全局配置,如 /etc/vimrc 或 /etc/vim/vimrc。本文所说的 .vimrc 均是指位于用户主目录中的 .vimrc 文件。)

Linux 系统中:

  • 用 Vim 打开 .vimrc 文件: vim ~/.vimrc
  • 复制本文最后的 选项列表 粘贴到 .vimrc 文件
  • 保存并关闭 (:wq)

(此处不建议使用 Vim 编辑 .vimrc 文件,因为很可能无法粘贴成功,可以选择 gedit 编辑器编辑 .vimrc 文件。)

Windows 系统中:

  • 首先, 安装 gvim
  • 打开 gvim
  • 单击 “编辑” -> “启动设置”,打开 _vimrc 文件
  • 复制本文最后的 “选项列表” 粘贴到 _vimrc 文件
  • 单击 “文件” -> “保存”

(此处应注意不要使用 Windows 自带的记事本编辑该 _vimrc 文件,否则可能会因为行结束符不同而导致问题。)

下面,我们将深入研究提高 Vim 编辑效率的选项。主要分为以下几类:

  1. 缩进 & 制表符
  2. 显示 & 格式化
  3. 搜索
  4. 浏览 & 滚动
  5. 拼写
  6. 其他选项

1. 缩进 & 制表符

使 Vim 在创建新行的时候使用与上一行同样的缩进:

set autoindent

创建新行时使用智能缩进,主要用于 C 语言一类的程序。通常,打开 smartindent 时也应该打开 autoindent:

set smartindent

注意:Vim 具有语言感知功能,且其默认设置可以基于文件中的编程语言来改变配置以提高效率。有许多默认的配置选项,包括 axs cindent,cinoptions,indentexpr 等,没有在这里说明。 syn 是一个非常有用的命令,用于设置文件的语法以更改显示模式。

(这里的 syn 是指 syntax,可用于设置文件所用的编程语言,开启对应的语法高亮,以及执行自动事件 (autocmd)。)

设置文件里的制表符 (TAB) 的宽度(以空格的数量表示):

set tabstop=4

设置移位操作 >> 或 << 的缩进长度(以空格的数量表示):

set shiftwidth=4

如果你更喜欢在编辑文件时使用空格而不是制表符,设置以下选项可以使 Vim 在你按下 Tab 键时用空格代替制表符。

set expandtab

注意:这可能会导致依赖于制表符的 Python 等编程语言出现问题。这时,你可以根据文件类型设置该选项(请参考 autocmd)。

2. 显示 & 格式化

要在每行的前面显示行号:

set number

要在文本行超过一定长度时自动换行:

set textwidth=80

要根据从窗口右侧向左数的列数来自动换行:

set wrapmargin=2

(如果 textwidth 选项不等于零,本选项无效。)

当光标遍历文件时经过括号时,高亮标识匹配的括号:

set showmatch

3. 搜索

高亮搜索内容的所有匹配位置:

set hlsearch

搜索过程中动态显示匹配内容:

set incsearch

搜索时忽略大小写:

set ignorecase

在打开 ignorecase 选项的条件下,搜索内容包含部分大写字符时,要使搜索大小写敏感:

set smartcase

例如,如果文件内容是:

test

Test

当两者都ignorecase和smartcase设置后,搜索“test”,查找并突出显示这两种内容:
对“Test”的搜索只突出显示或只找到第二行

4. 浏览 & 滚动

为获得更好的视觉体验,你可能希望将光标放在窗口中间而不是第一行,以下选项使光标距窗口上下保留 5 行。

set scrolloff=5

一个例子:

第一张图中 scrolloff=0,第二张图中 scrolloff=5。

提示:如果你没有设置选项 nowrap,那么设置 sidescrolloff 将非常有用。

在 Vim 窗口底部显示一个永久状态栏,可以显示文件名、行号和列号等内容:

set laststatus=2

5. 拼写

Vim 有一个内置的拼写检查器,对于文本编辑和编码非常有用。Vim 可以识别文件类型并仅对代码中的注释进行拼写检查。使用下面的选项打开英语拼写检查:

set spell spelllang=en_us

(中文、日文或其它东亚语字符通常会在打开拼写检查时被标为拼写错误,因为拼写检查不支持这些语种,可以在 spelllang 选项中加入 cjk 来忽略这些错误标注。)

6. 其他选项

禁止创建备份文件:启用此选项后,Vim 将在覆盖文件前创建一个备份,文件成功写入后保留该备份。如果不想保留该备份文件,可以按下面的方式关闭:

set nobackup

禁止创建交换文件:启用此选项后,Vim 将在编辑该文件时创建一个交换文件。 交换文件用于在崩溃或发生使用冲突时恢复文件。交换文件是以 . 开头并以 .swp 结尾的隐藏文件。

set noswapfile

如果需要在同一个 Vim 窗口中编辑多个文件并进行切换。默认情况下,工作目录是打开的第一个文件的目录。而将工作目录自动切换到正在编辑的文件的目录是非常有用的。要自动切换工作目录:

set autochdir

Vim 自动维护编辑的历史记录,允许撤消更改。默认情况下,该历史记录仅在文件关闭之前有效。Vim 包含一个增强功能,使得即使在文件关闭后也可以维护撤消历史记录,这意味着即使在保存、关闭和重新打开文件后,也可以撤消之前的更改。历史记录文件是使用 .un~ 扩展名保存的隐藏文件。

set undofile

错误信息响铃,只对错误信息起作用:

set errorbells

如果你愿意,还可以设置错误视觉提示:

set visualbell

惊喜

Vim 提供长格式和短格式命令,两种格式都可用于设置或取消选项配置。

autoindent 选项的长格式是:

set autoindent

autoindent 选项的短格式是:

set ai

要在不更改选项当前值的情况下查看其当前设置,可以在 Vim 的命令行上使用在末尾加上 ? 的命令:

set autoindent?

在大多数选项前加上 no 前缀可以取消或关闭选项:

set noautoindent

可以为单独的文件配置选项,而不必修改全局配置文件。需要的话,请打开文件并输入 :,然后键入 set命令。这样的话,配置仅对当前的文件编辑会话有效。

使用命令行获取帮助:

:help autoindent

注意:此处列出的命令仅对 Linux 上的 Vim 7.4 版本和 Windows 上的 Vim 8.0 版本进行了测试。

这些有用的命令肯定会增强您的 Vim 使用体验。你会推荐哪些其他有用的命令?

选项列表
复制该选项列表粘贴到 .vimrc 文件中:

" Indentation & Tabs
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
" Display & format
set number
set textwidth=80
set wrapmargin=2
set showmatch
" Search
set hlsearch
set incsearch
set ignorecase
set smartcase
" Browse & Scroll
set scrolloff=5
set laststatus=2
" Spell
set spell spelllang=en_us
" Miscellaneous
set nobackup
set noswapfile
set autochdir
set undofile
set visualbell
set errorbells

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 详解Linux文件系统:ext4及更高版本

    今天带大家了解一下ext4的历史,包括其与ext3和之前的其它文件系统之间的区别 大多数现代Linux发行版默认为ext 4文件系统,就像以前的Linux发行版默认为ext3.ext2,以及-如果追溯到足够远的话-ext. 如果您是Linux新手或者是文件系统新手,您可能会想知道ext 4给表带来了什么,而ext3却没有.考虑到诸如btrfs.XFS和ZFS等备用文件系统的新闻报道,您可能还想知道ext4是否还在积极开发中. 我们不能在一篇文章中涵盖所有关于文件系统的内容,但是我们将尝试让您了解

  • Linux使用NetworkManager随机生成你的MAC地址

    今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 Wi-Fi,就能通过网络与外界保持联系.但现在的 Wi-Fi 热点们大都能够通过 每张网卡对应的唯一 MAC 地址 来追踪你的设备.下面就来看一下如何避免被追踪. 现在很多人已经开始注重个人隐私这个问题.个人隐私问题并不仅仅指防止他人能够访问到你电脑上的私有内容(这又是另一个问题了),而更多的是指 可追踪性(legibility),也就是是否能够被轻易地统计和追踪到.大家都应该 对此更加重视 .同时,这方面的底线是,服务

  • Linux中有效地管理进程的8个命令

    前言 进程管理的作用: 判断服务器健康状态:通过分析进程的状态(内存.CPU占有率等)判断服务器的负载和安全状态 查看系统中的所有进程 杀死进程 本文将给大家详细介绍关于Linux管理进程命令的相关内容,通过这些关键的命令来全程管理你的应用. 一般来说,应用程序进程的生命周期有三种主要状态:启动.运行和停止.如果我们想成为称职的管理员,每个状态都可以而且应该得到认真的管理.这八个命令可用于管理进程的整个生命周期. 启动进程 启动进程的最简单方法是在命令行中键入其名称,然后按回车键.如果要启动 N

  • Linux下python3.6.1环境配置教程

    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本Python时会遇到各种问题,本篇文章针对python多版本共存做了详细安装说明. 1.下载python安装包 打开https://www.python.org/downloads/,选择downloads>>All releases 这里我选择安装python3.6.1 选择源码安装,下载源码通过

  • Linux下使用Rsync完成自动化备份

    1.将基础环境搭配好,挂载dvd,配置dvd.repo,清楚缓存,关闭防火墙(两台主机都要做) 查看rsync的版本 2.创建stor目录,并将目录下的dvd文件复制到stor中 3.查看压缩包,并将压缩包传输到另一台主机上 4.在另一台主机上ls查看一下 5.rysnc:它是一种C/S架构模型的.(有客户端有服务端)监听端口:873 6.两者都安装好httpd 7.客户端远程传输服务端文件到/var/www/htm下 8.密钥认证(两台主机都要做) 9.查看html文件并编辑copy.sh 1

  • Trash-Cli:Linux上的命令行回收站工具

    相信每个人都对 回收站(trashcan)很熟悉,因为无论是对 Linux 用户,还是 Windows 用户,或者 Mac 用户来说,它都很常见.当你删除一个文件或目录的时候,该文件或目录会被移动到回收站中. 需要注意的是,当把文件移动到回收站以后,文件系统空间并没有被释放,除非把回收站清空. 如果不想永久删除文件的话(清空回收站),可以利用回收站临时存储被删除了的文件,从而在必要的时候能够帮助我们恢复删除了的文件. 但是,如果在命令行使用 rm 命令进行删除操作,那么你是不可能在回收站中找到任

  • Linux定时自动删除旧垃圾文件的Autotrash工具

    Autotrash 是一个命令行程序,它用于自动清除旧的已删除文件.它将清除超过指定天数的在回收站中的文件.你不需要清空回收站或执行 SHIFT+DELETE 以永久清除文件/文件夹.Autortrash 将处理回收站中的内容,并在特定时间段后自动删除它们.简而言之,Autotrash 永远不会让你的垃圾变得太大. 安装 Autotrash Autotrash 默认存在于基于 Debian 系统的仓库中.要在 Debian.Ubuntu.Linux Mint 上安装 autotrash,请运行:

  • 在Linux 命令行终端分屏的两种工具

    下面介绍两种终端分屏工具:screen和tmux 一.使用screen分屏(只能上下分屏,不能左右分屏) (1)安装工具 在ubuntu系统中使用sudo apt-get install screen 安装screen工具 (2)使用工具 1,输入命令screen使用工具 2,上下分屏:ctrl + a  再按shift + s 3,切换屏幕:ctrl + a  再按tab键 4,新建一个终端:ctrl + a  再按c 5,关闭一个终端:ctrl + a  再按x (或直接按exit退出) 二

  • Linux里Makefile是什么?它是如何工作的?

    用这个方便的工具来更有效的运行和编译你的程序 makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接-----但是不是所有的文件都需要重新编译,makefile能够纪录文件的信息,决定在链接的时候需要重新编译哪些文件! 当你需要在一些源文件改变后运行或更新一个任务时,通常会用到 make 工具.make 工具需要读取一个 Makefile(或 makefile)文件,在该文件中定义了一系列需要执行的任务.你可以使用 make 来将源代码编译为可执行

  • Linux使用VIM编辑器的方法

    Vim 作为一款功能强大.选项丰富的编辑器,为许多用户所热爱.本文介绍了一些在 Vim 中默认未启用但实际非常有用的选项.虽然可以在每个 Vim 会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在 Vim 的配置文件中配置这些命令. 技巧:快速提高 vim 使用效率的原则与途径 vim 是所有 Unix/Linux 操作系统默认配备的编辑器.因其强大的功能和高效的操作,vim 也成为众多 Unix/Linux 用户.管理员必须掌握并熟练使用的编辑工具之一.尤其是在没有图形界面的情况

  • Linux (Ubuntu 18.04) 下安装vim编辑器的方法

    大家可以去Ubuntu官网下载桌面系统: https://ubuntu.com/download/desktop ,虽然最新版是19.04,但是建议大家下载稳定版18.04.安装过程非常简洁,我使用的是VMware Workstation Pro虚拟机,大家也可以用其他的,这个没什么影响. Ubuntu 18.04 用起来还是要比老版本要舒服很多的,毕竟做了这么久的Windows开发,突然接触linux,还是有点不习惯,但是新版的Ubuntu的一些操作习惯已经很接近Windows了,毕竟科技的发

  • Linux中Vim编辑器的使用教程

    Vim是一个类似Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了许多的功能,Vim是自由软件,今天我们就来讲讲Vim编辑器的使用. NAME vim - Vi IMproved, a programmers text editor #vi的改进,一个程序文本编辑器 1.移动光标的方法 Ctrl+f 屏幕向下移动一页 0(数字0) 移动到行首 $ 移动到行尾 G 移动到最后一样 gg 移动到第一行 n<Enter> 光标向下移动n行 2.查找和替换 /word 向光标下面

  • Vim 编辑器操作汇总

    vim   [参数]   [文件 ..]         编辑指定的文件   或: vim   [参数]    -     从标准输入(stdin)读取文本   或: vim   [参数]    -t    tag 编辑 tag 定义处的文件   或: vim   [参数]    -q   [errorfile] 编辑第一个出错处的文件 参数: -- 在这以后只有文件名   -v Vi 模式 (同 "vi") -e Ex 模式 (同 "ex") -E   Impro

  • 解决linux下vim中文乱码的方法

    Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2.UTF-8 等流行的 Unicode 编码方式. Vim 有四个跟字符编码方式有关的选项,encoding.fileencoding.fileencodings.termencoding (这些选项可能的取值请参考 Vim 在线帮助  :help encoding-names),它们的意义如下: 1.encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buf

  • linux中的vi和vim编辑器操作方法

    vi:linux内部的文本编辑器:vim:vi的增强版,具有程序编辑的能力. vi和vim的三种常见模式: (1)正常模式(一般模式):vim一打开就是这种模式,此模式下可以使用各种快捷键,比如复制粘贴.移动光标.删除整行等操作 (2)编辑模式(插入模式):此模式下可以输入内容,通过i,I,o,O,a,A,r,R等进入到此模式,不过最常用是使用i(insert). (3)命令行模式:在此模式下可以完成读取.存盘.替换.显示行号等一些操作. 三种模式的相互转换如下图:(图源来自韩顺平老师上课笔记)

  • Linux下设置Vim编辑器里Tab的长度行号

    使用Vim编辑器写脚本时,经常会遇到多重循环语句,习惯上会用tab键来补齐.这时设置tab键占用的长度,可以调节界面的松紧度,使其达到令人满意的效果. 在针对个别用户和所有用户来设置时,与编辑SSH相应的配置文件十分类似. 一.设置当前用户的Tab键的长度 编辑配置文件~/.vimrc即可 vim ~/.vimrc set tabstop=2 //设置Tab的长度为2个字节 保存并退出 二.设置所有用户的Tab键的长度 这里编辑配置文件/etc/vimrc,在文件末尾添加set tabstop参

  • Linux中Vi和Vim编辑器用法详解

    目录 一.简介 二.安装VIM 美化vim 三.进入 vi\VIM 编辑器 四.工作模式 三种工作模式: 五.退出 vi 编辑器 六.移动光标 七.控制命令 八.编辑文件 撤销命令: 重复命令: 九.删除字符 十.修改文本 十一.粘贴复制 十二.高级命令 十三.文本查找 全文件搜索 部分特殊字符列表: 搜索某行中的单个字符 十四.set 命令 十五.运行命令 十六.文本替换 十七.几点提示 十八.最全VI\Vim快捷键键位图 一.简介 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版

  • linux 中vim的用法讲解

    Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版.它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升. vim的命令的一些格式 1:vim xxx 直接打开一个xxx命名的vim文件,如果没有的话直接创建一个新的.默认光标定义到第一行 2:vim + xxx 打开光标并定义到最后一行 3:vim +num xxx 打开光标定义到

  • Linux使用文本编辑器vi常用命令

    vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便.vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本.C语言程序编辑等功能,可以作为程序编辑器. vi的三种模式及各个模式之间的转换关系 一:翻页 ctrl+u向上翻半页 ctrl+f向上翻一页 ctrl+d   向下翻半页 ctrl+b

随机推荐