基本命令:
Esc:VIM中的万能功能键之一,基本上任何时候按这个键,都可以返回VIM的普通状态。
i:在普通状态下按i可以进入“插入”编辑状态,这个时候按方向键移动光标,在想要输入的地方输入字符,用Del键删除字符,最后用Esc退出到普通状态。
yy(yny):在普通状态下,把光标用方向键移动到想要复制的某行文字上,按两下y,就是复制这一行。如果是想复制这行一下n行,就用yny方式。如复制5行,就是y5y。
p:复制后,移动光标到要粘贴的地方,按p既可。
d:和上面相对,按d就是删除当前行。
x:在普通模式下,按x就是删除光标当前位置的字符,汉字就是整个汉字。
:wq!:在普通模式下输入“:”就进入命令状态,在这个状态下,q代表退出,w代表保存,!代表强制。比如放弃修改,就是:q!,强制保存退出就是:wq!。
进入vi 的命令
vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑 移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{ :光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:!command:执行shell命令command:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器操作"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
在vi编辑器里面命令模式选项:set all 查看所有set选项
:set 显示当前set设置:filetype on 通过$VIMRUNTIME/filetype.vim.打开文件类型检测
*******************************************华丽的分割线****************************************************
VIM的安装:sudo apt-get install vim
文件位置:
/etc/vim/vimrcVIM配置:
"-----------------------"基本设置"-----------------------"不使用与vi兼容的键盘模式set nocompatible"检测文件的类型filetype on"记录历史的行数set history=1000"修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀"if has("vms")"set nobackup"else"set backup"endif" 可以在buffer的任何地方使用鼠标set mouse=aset selection=exclusiveset selectmode=mouse,key "-----------------------"界面设置"----------------------"显示行号set nu!"高亮显示当前行set cursorline"背景使用黑色set background=dark"去除vim的GUI版本中的toolbarset guioptions-=T"在编辑过程中,在右下角显示光标位置set ruler"always show the status lineset laststatus=2 "---------------------"格式设置"---------------------"自动换行set wrap"整词换行set linebreak"自动对齐set autoindent"智能对齐set smartindent"设置自动缩进set ai!"设置tab键为4个空格set tabstop=4"不要用空格代替制表符set noexpandtab"设置行间交错为4个空格set shiftwidth=4"使退格键可用set backspace=2"允许backspace和光标键跨越行边界set whichwrap+=<,>,h,l "---------------------"编程设置"---------------------"语法高亮度显示syntax on"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号set showmatch
"--------------------
"搜索相关设置"-------------------"默认情况下,搜索结果是高亮度显示的,该设置关闭高亮显示"set nohlsearch"随输入增量搜索set incsearch 一般设置如下:" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime" you can find below. If you wish to change any of those settings, you should" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten" everytime an upgrade of the vim packages is performed. It is recommended to" make changes after sourcing debian.vim since it alters the value of the" 'compatible' option." This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian.runtime! debian.vim" Uncomment the next line to make Vim more Vi-compatible" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous" options, so any other options should be set AFTER setting 'compatible'."set compatible" Vim5 and later versions support syntax highlighting. Uncommenting the next" line enables syntax highlighting by default."syntax on" If using a dark background within the editing area and syntax highlighting" turn on this option as well"set background=dark" Uncomment the following to have Vim jump to the last position when" reopening a file"if has("autocmd")" au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")" \| exe "normal g'\"" | endif"endif" Uncomment the following to have Vim load indentation rules according to the" detected filetype. Per default Debian Vim only load filetype specific" plugins."if has("autocmd")" filetype indent on"endif" The following are commented out as they cause vim to behave a lot" differently from regular Vi. They are highly recommended though."set showcmd " Show (partial) command in status line."set showmatch " Show matching brackets."set ignorecase " Do case insensitive matching"set smartcase " Do smart case matching"set incsearch " Incremental search"set autowrite " Automatically save before commands like :next and :make"set hidden " Hide buffers when they are abandoned"set mouse=a " Enable mouse usage (all modes) in terminals" Source a global configuration file if available" XXX Deprecated, please move your changes here in /etc/vim/vimrcif filereadable("/etc/vim/vimrc.local")source /etc/vim/vimrc.localendif个人添加的配置:"有两个的只能取其一set ai/noai " 自动缩进,新行与前面的行保持—致的自动空格/不自动空格(缺省)set aw/noaw " 自动写,转入shell或使用:n编辑其他文件时,当前的缓冲区被写入/不写set flash/noflash " 在出错处闪烁但不呜叫(缺省)/使用呜叫而不闪烁set ic/noic " 在查询及模式匹配时忽赂大小写/不忽略大小写(缺省)set nu/nonuset number/nonumber " 屏幕左边显示行号/不显示行号(缺省)set showmatch " 显示括号配对,当键入“]”“)”时,高亮度显示匹配的括号/缺省不高亮set showmode " 处于文本输入方式时加亮按钮条中的模式指示器/缺省不指示当前模式set showcmd " 在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来set warn/nowarn " 对文本进行了新的修改后,离开shell时系统给出显示(缺省)set ws/nows " 在搜索时如到达文件尾则绕回文件头继续搜索set wrap/nowrap " 长行显示自动折行colorscheme evening " 设定背景为夜间模式filetype plugin on " 自动识别文件类型,自动匹配对应的, “文件类型Plugin.vim”文件,使用缩进定义文件set autoindent " 设置自动缩进:即每行的缩进值与上一行相等;使用noautoindent 取消设置set cindent " 以C/C++的模式缩进set noignorecase " 默认区分大小写set ruler " 打开状态栏标尺set scrolloff=5 " 设定光标离窗口上下边界5 行时窗口自动滚动set shiftwidth=4 " 设定<< 和>> 命令移动时的宽度为4set softtabstop=4 " 使得按退格键时可以一次删掉4 个空格,不足4 个时删掉所有剩下的空格)set tabstop=4 " 设定tab 长度为4set wrap " 自动换行显示syntax enablesyntax on " 自动语法高亮