大家好,又见面了,我是全栈君。
vim 的优点纯文字编辑和 Linux 完美的融合提供了命令行。只能假设 ssh 至server进行操作,那么这样的情况就仅仅能使用 vim 了。vim 也是最为强大的通用文本编辑器之中的一个,对于须要编辑不同文本的情景,vim 也是相当有优势的。所以,熟练掌握一下 vim 的基本使用还是非常有必要的。
vim 是在 vi 基础上加非常多新特征发展而来。gvim 则给 vim 加上了图形前端。假设在 Windows 下使用 vim,能够直接安装最新的 gvim。
这里给出一个主要的 vimrc 配置文件。没有配置不论什么插件,仅仅是把主题改成了自带 evening 暗调主题。字体改成了 Consolas 等宽字体。并对行号。缩进,搜索等做了一些基本设置。并且把做了键映射 <ESC> -> ii,i 本来是切换到插入模式,高速双击i, 则又切换回到 normal 模式很顺手。
"-----------------------------------------------------------------------------------
:imap ii <Esc> " 按键映射 <ESC> -> ii
"外观
colorscheme evening " 配置颜色主题
set guifont=Consolas:h12 " 设置字体和大小
set number " 显示行号
set guioptions-=T " 隐藏工具栏
set ruler " 打开状态栏标尺
set cursorline " 突出显示当前行
set syntax=on " 语法高亮
set showmatch " 高亮显示匹配的括号
set matchtime=3 " 匹配括号高亮的时间(单位:0.1s)
set scrolloff=10 " 光标到屏幕底端保留 10 行 (光标位于屏底看着非常不舒服的)
set lines=35 columns=118 " 启动时的大小
:winpos 177 51 " 启动时的位置
"搜索
set ignorecase smartcase " 搜索忽略大写和小写,但有大写字母时仍保持大写和小写敏感
set hlsearch " 高亮搜索
set incsearch " 增量式搜索,逐字符高亮
"操作
set clipboard+=unnamed " 共享剪切板
set showcmd " 输入的命令显示出来
set iskeyword+=_,$,@,%,#,- " 带有例如以下符号的单词不要被换行切割
set noexpandtab " 不用空格取代Tab (makefile是会经经常使用Tab的)
set tabstop=4 " Tab 键的宽度
set shiftwidth=4 " 行交错宽度
set mouse=a " 鼠标可用
set autoindent " 继承前一行的缩进方式。特别适用于多行凝视
"备份
set confirm " 未保存或者仅仅读时,弹出确认
set nobackup " 不生成备份文件
setlocal noswapfile " 不生成 swap 文件
set bufhidden=hide " 当 buffer 被丢弃的时候隐藏
set noerrorbells " 不发出警告声
"解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
# 效率
. # 反复近期的文本操作
# 文件
:q # 退出 q->quit
:w # 保存 w->write
:q! # 强制退出不保存
:wq # 保存后退出
ZZ # 保存后退出,同 :wq
# 光标移动
hjkl # 最主要的左下上右。移动一个字符
zz # 光标做在行移动到屏幕中间
w # 向前移动一个单词。光标停在单词首部
b # 向后移动一个单词, 光标停在单词首部
e # 同 w, 光标停在单词尾部
ge # 同 b, 光标停在单词尾部
0 # 本行第一个字符 (同 <HOME> 键)
^ # 本行第一个非空白字符
$ # 移动到行尾 (同 <END> 键)
gg # 移动到文件头
G # 移动到文件尾
:n # 跳转到第 n 行
fx # 移动到光标后第一个为 x 的字符 find
Fx # 同 f,反向移
Ctrl+d # 向下滚动半屏
Ctrl+u # 向上滚动半屏
Ctrl+f # 向下滚动半屏
Ctrl+b # 向上滚动半屏
% # 跳转到配对的括号 (经常使用)
( # 移动到当前句子開始
) # 移动到下一句子開始
H # 移动页面顶部 H->High
M # 移动页面中部 M->Middle
L # 移动页面底部 L->Low
# 查找
/test # 查找 text ,(记得用正則表達式), 然后 n 向下。 N 向上 n->next
?test # 查找 text 。反向
* # 向下查找和光标所在单词一样的词
# # 向上查找和光标所在单词一样的词
:nohlsearch # 关闭当前高亮显示的结果 (输入 :noh 按下 <Tab> 键 就可以自己主动补全)
# 替换
ra # 当前字符替换为 a , r->replace
:%s/old/new/g # 替换全文的全部的匹配 g->global
:%s/old/new/ # 替换全部行第一个匹配
:s/old/new/g # 替换当前行全部匹配
:s/old/new/ # 替换当前行第一个匹配
# 插入
a # 在当前位置后插入 a->append
A # 在当前行尾插入
i # 在当前位置插入 i->insert
I # 在当前行首插入
o # 在当前行之后插之中的一个行
O # 在当前行之前插入一行
s # 删除光标所在字符,并进入插入模式
S # 删除光标所在的行,并进入插入模式
# 选中
v # 从光标当前位置開始,光标所经过的地方会被选中,再按一下 v 结束 (相似 <shift>+方向建) v->view 可视模式
V # 从光标当前行開始,光标经过的行都会被选中,再按一下 V 结束
# 删除
d # 删除选中 (删除内容到了缓冲区能够被粘贴,相当于剪切) d->delete
x # 删除当前字符
3x # 删除当前光标向后三个字符 (vim 经经常使用 <数字>+<命令> 组合)
dd # 删除当前行
dw # 删除光标所在字符至下个单词开头 dw -> delete word
d$ # 删除当前字符到行尾 %->正则中就是行尾
3d # 删除当前行開始三行
J # 合并两行 (即删除当行尾换行符) J->join
# 撤销
u # 撤销 u->undo
U # 撤销对正行的操作
Ctrl+r # 恢复撤销
# 复制粘贴
y # 复制选中
yy # 复制当前行
p # 在当前光标后粘贴。假设复制了一行则粘贴到下一行 p-paste
P # 在当前光标前粘贴
ddp # 交换当前行和下一行 (巧妙运用了剪切粘贴)
xp # 交换当前字符和下一个
版权声明:本文博主原创文章,博客,未经同意不得转载。
[http://blog.csdn.net/thisinnocence]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117090.html原文链接:https://javaforall.cn