vim

环境信息

  • Centos 7

vim 配置

vim 启动时会读取 /etc/vimrc(全局配置) 和 ~/.vimrc (用户配置)

常用配置如下,使用 " 注释

/etc/vimrc
" 自动缩进 
set ai
set autoindent

" 保存历史命令数量
set history=50

" 右下角显示当前鼠标位置(行列数)
set ruler

" 鼠标位置所在行显示下划线
set cursorline

" 开启语法高亮
syntax on

" 高亮搜索结果
set hlsearch

" 搜索时不区分大小写
set ignorecase

" 将 tab 转换为空格
set expandtab

" tab 转换为4个空格
set tabstop=4

" 删除时,可以一次删除4个空格
set softtabstop=4

" 显示行数
set nu

vim 常见用法

读写加解密文件

创建新的加密文件

vim -x mysecfile

使用 vim-x 选项,将创建一个新的文件,并提示需要设置加密密码,输入 2 次密码后,将进入 vim 界面,编辑完内容,保存后,产生的文件为 vim 加密的文件,使用 file 命令查看,显示如下

$ file mysecfile
mysecfile: Vim encrypted file data

之后要使用 vim 编辑此文件,都要按照提示输入密码,如果未输入密码或者输入的密码错误,打开的文件内容将显示为乱码,只有输入正确的密码,才能看到正确的文件内容,如果使用其他编辑器,可以直接打开文件,但是内容乱码

加密已有文件

对于已经存在的未加密文件,使用 vim-x 选项时,会要求输入密码,此时不输入密码,或者随便输入,都会打开正确的文件内容(因为文件并未被 vim 加密保护)

对于已经存在的未加密文件,若要使用 vim 进行加密,可以在 vim 打开文件后,使用 vimX 命令对文件进行加密。具体操作为: 在 vim 的一般模式下(按 Esc 进入),输入

:X

确定后 vim 会提示输入 2 次密码,完成加密,最后保存文件

vim
:wq

对于 vim 已经加密的文件,如果使用 vim 打开时输入错误的密码或者未输入密码,打开文件显示乱码,此时如果对文件进行了保存,会导致乱码被保存为文件内容,导致文件内容丢失

文件解密

vim 已加密的文件,需要解密的话,在正确打开文件后,可以通过 加密已有文件 中的步骤,将文件密码设置为空即可
或者正确打开加密文件后,进入一般模式下,执行以下命令

vim
:set key=

常见错误

vim INSERT 模式中无法使用鼠标复制粘贴

环境信息

  • Debian GNU/Linux 12
  • VIM - Vi IMproved 9.0

在 Debian 的 Docker 镜像中安装 apt install vim 后, 在 vim INSERT 模式下无法使用鼠标复制粘贴内容,这是由于 vim 默认的鼠标配置干扰了鼠标操作。禁用鼠标模式即可解决

:set mouse=

复制粘贴到 vim 后格式可能会错乱,使用 paste 模式解决

:set paste