命令 vimtutor 可以进入vim教程, 就是文档介绍.
系统配置文件 /etc/vim/vimrc ,用户配置文件 $HOME/.vimrc
vim 中的快捷按键和命令:
上下左右 k j h l
上一页 Ctrl + b
下一页 Ctrl + f
快速退出 ZZ .
代码排版 gg=G .
快速定位 行号加G .
光标定位 0 (零,到行首) , $(行尾) .
光标快速 gg (文件首部), G(文件尾部).
行数跳转 123G (跳转到123行).
增加行数 222 回车 (跳转到当前行数+222 的那一行).
区块选择 crtl+v 可以进行矩形范围选择.(非常好用),还可以进行矩形粘贴.
列选择 V 大v, 可以直接选择一行.
删除字符 x (删除光标后面的) X (删除光标前面的).
删除单词 dw(删除光标所在单词的后面的部分).
删除半行 d0(删除光标这一行前面的所有字符) D或d$ (删除后面的).
删除整行 dd (这个实际是剪切,但是可以用来删除).
删除多行 20dd (删除当前光标位置向下的20行内容).
删除所有 dG (在文件开头输出,会全部删除).
删除任意 先进入v 可视模式. 选择后再按 d 就可以了.
撤销操作 u
反撤销 Ctrl + r (组合键)
复制一行 yy (在想要复制的行内输入).
粘贴一行 p / P (一个在光标下面,一个在光标上面粘贴).
复制多行 3yy (复制了三行).
任意复制 先进入v 可视模式. 选择后再按 y 就可以了
任意粘贴 p / P (会在光标后面或前面进行粘贴,但是需要 任意复制).
替换操作 r / R ( r 一个字符,是光标后面的字符, R 替换多个,从光标后的位置向后替换).
整行替换 :s/需要替换的内容/替换后的内容/g (把这一行的内容替换掉).
指定行替换 :12,29s/work/newlink/g (把12到29行中的 work 替换成 newlink).
全文替换 :%s/work/newlink/g (全文的 work 替换成 newlink).
提示替换 :s/work/gc (c 关键字会提示用户是否替换,上面都能使用这个选项).
查找操作 / 或者 ? 在单词上按 # 可以查找这个单词 (n 向下,N 向上).
man文档 章节号 + K (在函数上按就会打开一个帮助文档,q退出和vim一样).
(函数按3, 系统调用按2, shell和执行程序按1)
shell命令 ! 后面跟shell 命令就可以执行了. ! gcc main.c
十六进制显示 :%!xxd 将当前的文本转换成十六进制来显示.
文本格式显示 :%!xxd -r 将当前文本转换回文本格式显示.
分屏操作 :sp 文件名 或者 :vsp 文件名 (一个横向屏,一个竖向屏,在后面添加文件名就能打开两个不同文件).
屏幕切换 Ctrl + w w (两个ww 之后就可以在两个窗口之间切换光标了).
多窗口保存 :wall (退出是 :qall , 保存退出:wqall)
直接分屏 vim -O 文件1 文件2 ; (shell命令, 直接打开两个文件并且分屏显示,竖屏)
获得当前文件的编码格式 :set fileencoding
设置当前文件的编码格式 :set fileencoding=utf8
:set display=uhex 或者 :set by=uhex 显示不可显示字符-十六进制(\r 变成 <0d>)配合 -b参数
尽量使用 ~/.vimrc 来配置打开文件编码
set fileencodings=utf-8,gb18030,gbk,gb2312,ANSI,ucs-bom,cp936,big5,euc-jp,euc-kr
# 使用 -b 二进制模式 来打开文件
$ vim -b fileNmae
vim 模式:
:set display=uhex 显示不可显示字符 , 开启后 末尾会出现 <0d> 这个标识
:%s/\r//g 全局替换成空 /r = 0xd0
保存即可
当出现 vim 被异常中断 或 多人同时编辑一个文件时, 就会出现警告讯息. 让你来选择打开方式.
这个警告讯息是由 .filename.swp 这个vim 打开文件自动生成的文件引起的. 也是保存了你编辑过的文件未保存的所有内容.(暂存盘)
- O (大o)
- 只读方式打开
- E
- 直接编辑,放弃 .filename.swp 文件的保存内容.(但是 .swp 文件并不会删除)
- R
- 载入暂存盘的内容. (.swp 文件还是存在,需要你在保存了编辑文件之后,进行手动删除 .swp 文件)
- D
- 确定暂存盘内容无用, 直接删除这个.swp 文件的内容,并重新建立一个新的.
- Q
- 离开,什么也不做,回到 bash
- A
- 和Q 动作类似
通过 $vim 文件1 文件2 文件3 来打开三个文件
然后输出 :files 会列出编辑的文件列表.
输入 :n 切换到下个文件, :N 切换到上个文件
补全功能必须在编辑模式下可以生效.
首先要输入 ctrl + x 这个快捷键,进入补全模式, 然后再次输入下面三个快捷键组合之一来达到目的.
ctrl + n 通过目前正在编辑的这个 '文件的内容文字' 作为关键字,予以补全.
ctrl + f 以当前目录内的 '文件名' 作为关键字,予以补全.
ctrl + o 以编辑文件的扩展名为语法补充(.c,.cpp),以vim 内置的关键字,予以补全
全局配置文件是 /etc/vimrc ,本地用户配置文件是 ~/.vimrc 需要手动创建.
.vimrc 配置参数如下
"" 双引号是 注释标记符号
set nu ""行号
set autoindent ""自动排版
set backup ""自动备份文件
syntax on ""on表示开启,会根据程序相关语法显示不同的颜色.
set bg=bark ""可用于显示不同的颜色 色调, 默认是 'light'
在 vim 中,可以使用 :set all
来显示所有的环境参数设置值.
- 引起中文出现乱码的几种状态
- Linux 默认支持的语系数据: 这与
/etc/locale.conf
有关. (一般是LANG=en_US.UTF-8
) - 终端接口(bash) 的语系: 这与
LANG, LC_ALL
这几个变量有关. - 文件原有的编码.
- 打开终端机的软件, 例如在
GNOME
下的窗口接口
- Linux 默认支持的语系数据: 这与
- 修正解决方案
- 当文件是 utf8编码时
$LANG=zh_CN.UTF-8
$export LC_ALL=zh_CN.UTF-8
- 当文件是 big 编码时
$LANG=zh_CN.big5
$export LC_ALL=zh_CN.big5
- 解决上面两种后, 再次调整 终端机 (你使用的终端软件) 的编码.
- 当文件是 utf8编码时