前言
其实我原来是资深的notepad++用户,之前也接触过vim等编辑器,也曾下决心学习过,但是由于使用的习惯问题,最终都是没有去熟练。
这次再度学习vim的使用,也是因为由于需要常常在linux下进行文本编辑(我已经厌倦了windows下编辑,然后再到linux下执行了,这样确实比较麻烦),因此我又重新拾起vim这款编辑器。再次我也做了些笔记,特此和大家分享。
常用命令
以下是我自己在学习的时候整理的笔记,我建议大家可以去下载一个vim命令中文手册.pdf
i 是插入
a 是追加
R 进入替换模式
vim -R file 以只读方式打开
view file 只读
o 是在当前行的下一行 另起一行 并设置为insert模式
O 实在当前行的上面 另起一行 并设置为insert模式
x 删除单个字符
X 删除前一个字符
D 删除当前字符到结尾
dd 删除一行
dw 删除一个word
d4w 删除4个word
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容
x 代表dl(删除当前光标下的字符)
X 代表dh(删除当前光标左边的字符)
D 代表d$(删除到行尾的内容)
C 代表c$(修改到行尾的内容)
s 代表cl(修改一个字符)
S 代表cc(修改一整行)
daw 删除当前单词 aw是一个文本对象
p 取回被删除的内容,在当前光标位置恢复 P
xp 常用来交换两个字符
y 复制 yy 复制整行 Y 复制整行
使用剪切板:
"*yy 将一行内容复制到剪切板
"*p 将一行内容从剪切板粘贴
c 改变文本 同d类似 也可以接一些移位的操作符
r 替换单个字符
J 删除当前行的换行符
u 撤销上次的操作
ctrl R 用于撤销 上次撤销所做的操作
w 向前移动一个word
b 向后移动一个word
e 向后移动并将光标位于word的最后一个字母上
ge 向前移动并且光标位于最后一个字母上
^ 移动到字母开头
0 移动到字符的最前面
$ 移动到行尾
一个命令的大写字母往往会做相同的事情但是方向相反
gg 跳转到第一行
numG 跳转到指定行
% 自动跳转到匹配({[处
M 跳转到中间位置
H 跳转到开头
L 跳转到末尾
ctrl G 查看当前行的信息
:set number 显示行号 :set nonumber 不显示行号
:set ruler 用于显示当前光标位置
:set ignorecase 忽略大小写
:set hlsearch 在匹配时显示语法高亮
:marks 显示所有的mark标记
:set backup 备份文件
:set backupext=.bak 备份时的文件名
zz 将当前行置于屏幕正中央
zt 将当前行置于屏幕顶b端
zb 将当前行置于底端
/string 进行字符串查找 使用n可以在不同string间切换 N为向前
?string 为反向查找
直接在word上 使用* 则可以匹配对应的字符串 # 也是类似
/ \<the\>用来精确匹配字符串
`` 可以在两次跳转将来回切换
ctrl O 可以往回跳
ctrl I 可以往前跳 Tab 命令功能相同
:jumps 会列出历史跳转记录
m<> mark一个标记 可以使用`mark 来进行跳转移动到下标记的位置 或者是 'mark 移动到行首
ZZ 保存更改
:q! 丢弃所有更改 并退出
:e! 放弃所有更改,并重新载入文件进行编辑
v 进入可视模式,这里主要进行选择操作
:saveas move.c 将当前文件 另存为
:w保存
:split 分割窗口
:close 关闭当前窗口
:only 关闭除当前窗口外的其它窗口
:vsplit 左右分割窗口
:qall 关闭所有窗口
:wall 保存所有窗口中的修改
ctrl W 进行多个窗口间切换 由于和cmder的hotkey冲突 所以可以用ctrl shift w 进行替换 效果一样
vimdiff file1 file2 可以查看两个文件的不同
vim -r file 进行交换文件恢复
配置
.vimrc
"去掉vi的一致性"
set nocompatible
"显示行号"
set number
" 隐藏滚动条"
set guioptions-=r
set guioptions-=L
set guioptions-=b
"隐藏顶部标签栏"
set showtabline=0
"设置字体"
set guifont=Monaco:h13
syntax on "开启语法高亮"
let g:solarized_termcolors=256 "solarized主题设置在终端下的设置"
set background=dark "设置背景色"
colorscheme solarized
set nowrap "设置不折行"
set fileformat=unix "设置以unix的格式保存文件"
set cindent "设置C样式的缩进格式"
set tabstop=4 "设置table长度"
set shiftwidth=4 "同上"
set showmatch "显示匹配的括号"
set scrolloff=5 "距离顶部和底部5行"
set laststatus=2 "命令行为两行"
set fenc=utf-8 "文件编码"
set backspace=2
set mouse=a "启用鼠标"
set selection=exclusive
set selectmode=mouse,key
set matchtime=5
set ignorecase "忽略大小写"
set incsearch
set hlsearch "高亮搜索项"
set noexpandtab "不允许扩展table"
set whichwrap+=<,>,h,l
set autoread
set cursorline "突出显示当前行"
set cursorcolumn "突出显示当前列"
set showcmd
总结
我感觉vim毕竟是一个文本编辑器,如果想要熟练使用就必须经常用。