-rw-r--r--. 1 root root 1982 8月 2 2017 /etc/virc vi 配置文件 -rw-r--r--. 1 root root 1982 8月 2 2017 /etc/vimrc vim 全局配置文件 -rw-r--r--. 1 root root 1982 8月 2 2017 ~/.vimrc vim 用户配置文件,默认没有,须要手工创建 source ~/.vimrc 让配置文件当即生效,source 可用(.)代替,如 . /etc/vimrc :q! 放弃修改,所用用户可用 :wq! 当没有写入权限时强制写入,只有 root 可用。 :wq 保存退出 ZZ 保存退出
a 在光标所在字符后插入 A 插入光标所在行行尾 i 在光标所在字符前插入 I 插入光标所在行行首 o 在光标下插入新行 O 在光标上插入新行
H 向左 gg 移动到文件头 L 向右 G 移动到文件尾 J 向下 ^ 移到行首 K 向上 $ 移到行尾
x 删除单个字符 nx 删除 n 个字符 dw 删除光标后一个字符串 dd 删除单行 D 光标后删除到行尾 ndd 删除单行 :m,nd 从 m 行删除到 n 行 dG 从光标所在行删除到文件尾 C 当前位置删除到行尾,且打开编辑模式 dw 当前位置删除一个字符串
yy 复制 nyy 复制 n 行 p 粘贴到光标下一行 P 粘贴到光标上一行 u 撤销 ctrl+r 反撤销 r 替换当前光标位置字符 R 从光标位置开始替换,ESC 键结束 / 查找,n 下一个,N 上一个, :noh 取消查找后的高亮 :r! 命令 把命令结果写在光标所在行 :r /etc/passwd 把/etc/passwd 文件内容载入到当前编辑的文件中
:1,10s/old/new/g 把 1 到 10 行的 old 替换为 new :%s/old/new/g 把全文的 old 替换为 new(%表明全文) :1,10s/^/#/g 在 1 到 10 行的行首加入#
1) 显示行号 :set nu :set nonu 2) 颜色开关 :syntax off :syntax on 3) 快捷键 :map ^P I#<ESC> 当按下 ctrl+p,在行首加入“#” “^P”须要 ctrl+V+P 输入 :map ^B ^x 当按下 ctrl+b,删除行首的一个字母,用于删除注释 4) 替换 :ab 原字符 目标字符 :ab abc ABC1234@qq.com
能够选择须要的功能添加至 ~/.vimrc 打开注释使之生效。java
" 让 vim 关闭全部扩展的功能,尽可能模拟 vi 的行为。 set nocompatible " 突出显示当前行,即横线 set cursorline " 隐藏工具栏 set guioptions-=T " 隐藏菜单栏 set guioptions-=m " 设置在状态行显示的信息 set foldcolumn=0 " 语法高亮 set syntax=on " 去掉输入错误的提示声音 set noeb " Tab键的宽度 set tabstop=4 " 统一缩进为4 set softtabstop=4 " 历史记录数 set history=1000 " 禁止生成临时文件 set nobackup " 禁止生成临时文件 set noswapfile " 搜索忽略大小写 set ignorecase " 搜索逐字符高亮 set hlsearch " 输入搜索内容时就显示搜索结果 set incsearch " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=1 " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 "新建.c,.h,.sh,.java文件,自动插入文件头 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" func SetTitle() if &filetype == 'sh' call setline(1, "#!/bin/bash") call append(line("."), "# File Name: ".expand("%")) call append(line(".")+1, "# Intro: *****") call append(line(".")+2, "# mail: *****@163.com") call append(line(".")+3, "# Created Time: ".strftime("%c")) call append(line(".")+4, "#-------------------------------") call append(line(".")+5, "") else call setline(1, "/*************************************************************************") call append(line("."), " > File Name: ".expand("%")) call append(line(".")+1, " > Intro: *****") call append(line(".")+2, " > Mail: *****@163.com") call append(line(".")+3, " > Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "") endif if &filetype == 'cpp' call append(line(".")+6, "#include<iostream>") call append(line(".")+7, "using namespace std;") call append(line(".")+8, "") endif if &filetype == 'c' call append(line(".")+6, "#include<stdio.h>") call append(line(".")+7, "") endif endfunc " 新建文件后,自动定位到文件末尾 autocmd BufNewFile * normal G