VIM命令使用详解
- 格式:docx
- 大小:26.29 KB
- 文档页数:3
vim配置⽂件.vimrc详解"是否兼容VI,compatible为兼容,nocompatible为不完全兼容"如果设置为compatible,则tab将不会变成空格set nocompatible"设置⿏标运⾏模式为WINDOWS模式behave mswin"设置菜单语⾔set encoding=chineseset langmenu=zh_CN.UTF-8" =========" 功能函数" =========" 获取当前⽬录func GetPWD()return substitute(getcwd(), "", "", "g")endf" =====================" 多语⾔环境" 默认为 UTF-8 编码" =====================if has("multi_byte")set encoding=utf-8" English messages only"language messages zh_CN.utf-8if has('win32')language englishlet &termencoding=&encodingendifset fencs=utf-8,gbk,chinese,latin1set formatoptions+=mMset nobomb " 不使⽤ Unicode 签名if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'set ambiwidth=doubleendifelseechoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"endif" =========" 环境配置" =========" 保留历史记录set history=400" 命令⾏于状态⾏set ch=1set stl=\ [File]\ %F%m%r%h%y[%{&fileformat},%{&fileencoding}]\ %w\ \ [PWD]\ %r%{GetPWD()}%h\ %=\ [Line]\ %l,%c\ %=\ %P set ls=2 " 始终显⽰状态⾏" 制表符set tabstop=4"把tab转成空格"set expandtabset smarttabset shiftwidth=4set softtabstop=4" 状态栏显⽰⽬前所执⾏的指令set showcmd" ⾏控制set linebreakset nocompatibleset textwidth=80set wrap" ⾏号和标尺set numberset rulerset rulerformat=%15(%c%V\ %p%%%)" 控制台响铃:set noerrorbells:set novisualbell:set t_vb= "close visual bell" 插⼊模式下使⽤ <BS>、<Del> <C-W> <C-U>set backspace=indent,eol,start" 标签页set tabpagemax=20set showtabline=2" 缩进智能对齐⽅式set autoindentset smartindent" ⾃动重新读⼊set autoread"代码折叠"设置折叠模式set foldcolumn=4"光标遇到折叠,折叠就打开"set foldopen=all"移开折叠时⾃动关闭折叠"set foldclose=all"zf zo zc zd zr zm zR zM zn zi zN"依缩进折叠" manual ⼿⼯定义折叠" indent 更多的缩进表⽰更⾼级别的折叠" expr ⽤表达式来定义折叠" syntax ⽤语法⾼亮来定义折叠" diff 对没有更改的⽂本进⾏折叠" marker 对⽂中的标志折叠set foldmethod=syntax"启动时不要⾃动折叠代码set foldlevel=100"依标记折叠set foldmethod=marker"语法⾼亮syntax enablesyntax on"设置配⾊set guifont=Courier\ New:h12colorscheme desert"设定⽂件浏览器⽬录为当前⽬录set bsdir=buffer" ⾃动切换到⽂件当前⽬录set autochdir"在查找时忽略⼤⼩写set ignorecaseset incsearchset hlsearch"设置命令⾏的⾼度set cmdheight=2"显⽰匹配的括号set showmatch"增强模式中的命令⾏⾃动完成操作set wildmenu"使PHP识别EOT字符串hi link phpheredoc string"php语法折叠let php_folding = 1"允许在有未保存的修改时切换缓冲区set hidden"实现全能补全功能,需要打开⽂件类型检测"filetype plugin indent on"打开vim的⽂件类型⾃动检测功能"filetype on"保存⽂件的格式顺序set fileformats=dos,unix"置粘贴模式,这样粘贴过来的程序代码就不会错位了。
使⽤Vim⽐较两个⽂件的内容1. 使⽤vim的⽐较模式打开两个⽂件:vim -d file1 file2或vimdiff file1 file22. 如果已经打开了⽂件file1,再打开另⼀个⽂件file2进⾏⽐较::vert diffsplit file2如果没有⽤vert命令,diffsplit则会分上下两个窗⼝。
3. 如果已经⽤split⽅式打开了两个⽂件file1,file2,⼜想⽐较两⽂件的不同。
分别在两个窗⼝⾥⾯输⼊命令::diffthis4. 如果更改了某个窗⼝的内容,vim⼜没有⾃动更新diff检查,可以使⽤如下命令更新::diffupdate5. 定位到不同点:[c 跳到前⼀个不同点]c 跳到后⼀个不同点6. 在窗⼝间跳转:ctrl-w w 跳到下⼀个窗⼝ctrl-w h 跳到左侧窗⼝ctrl-w l 跳到右侧窗⼝ctrl-w j 跳到下⽅的窗⼝ctrl-w k 跳到上⽅的窗⼝7. 合并⽂档:dp 将差异点的当前⽂档内容应⽤到另⼀⽂档(diff put)do 将差异点的另⼀⽂档的内容拷贝到当前⽂档(diff get)8. 上下⽂的展开和查看⽐较和合并⽂件的时候经常需要结合上下⽂来确定最终要采取的操作。
Vimdiff 缺省是会把不同之处上下各 6 ⾏的⽂本都显⽰出来以供参考。
其他的相同的⽂本⾏被⾃动折叠。
如果希望修改缺省的上下⽂⾏数为3⾏,可以这样设置::set diffopt=context:3zf 创建折叠(使⽤数字表⽰创建有当前⾏到下多少⾏的折叠,⽐如3j就创建包括4⾏的折叠)zo 打开折叠(l也可以打开折叠)zc 关闭当前折叠zm 关闭所有折叠zr 打开所有折叠zE 删除所有折叠zd 删除当前折叠za 若当前打开则关闭,若当前关闭则打开zj 到下⼀折叠的开始处zk 到上⼀折叠的末尾。
vim编辑器的使⽤详解在Linux江湖,最常⽤到的编辑器⾮vim莫属,vim的功能很强⼤。
1. vim简介在Linux世界中,最长⽤到的⽽且功能⽐较强⼤的是Vim编辑器。
Vim编辑器是在内存缓冲区中处理数据。
vim ⽂件名 or vi ⽂件名都可以通过vim打开⽂件⼀般vim打开⽂件功能更多⼀些,特别是对于shell脚本这种⽂本,会有不同字符的⾼亮显⽰。
如果启动vim时未指定⽂件名,或者指定的⽂件名不存在,vim会开辟⼀段新的缓冲区域来编辑。
vim /etc/passwdvim tt2 vim模式介绍vim编辑器有两种模式:1. 普通模式2. 插⼊模式2.1 普通模式当刚打开要编辑的⽂件或新建⼀个⽂件时,vim⾸先进⼊的是普通模式。
在普通模式中,vim会将案件解释程命令。
在普通模式下,可以⽤⽅向键在⽂本区域移动光标。
vim有⽤来移动光标的命令:h:左移⼀个字符j:下移⼀⾏(⽂本的下⼀⾏)k:上移⼀⾏(⽂本的上⼀⾏)l:右移⼀个字符PageDown(或Ctrl+F):下翻⼀屏PageUp(或Ctrl+B):上翻⼀屏G:移动到缓冲区的最后⼀⾏num G:移动到缓冲区的第num⾏gg:移动到缓冲区的第⼀⾏2.2 普通模式的命令⾏模式Vim编辑器在普通模式下有个特特别的功能叫命令⾏模式。
命令⾏模式提供了⼀个交互式命令⾏,可以输⼊额外的命令来控制vim的⾏为。
要进⼊命令⾏模式,在普通模式下按下冒号键”:”,光标会移动到消息航,然后出现冒号,等待输⼊命令。
在命令⾏模式下有⼏个命令时可以退出缓冲区::q 如果未修改缓冲区数据,退出。
:q! 取消所有对缓冲区数据的修改并退出。
:w filename 将⽂件保存到另⼀个⽂件中。
:wq 将缓冲区数据保存到⽂件中并退出3 编辑数据在普通模式,输⼊i,就会进⼊到插⼊模式,然后就可以编辑和数据的插⼊。
如图:在普通模式下,vim提供了⼀些命令来编辑缓冲区中的数据。
命令描述x删除当前光标所在位置的字符dd删除光标所在的⾏dw删除当前光标所在的单词d$删除当前光标所在位置⾄⾏尾的内容J删除当前光标所在⾏⾏尾的换⾏符(拼接符)u撤销前⼀编辑命令a在当前光标后追加数据A在当前光标所在⾏尾追加数据r char⽤char替换当前光标所在位置的单个字符R text⽤text覆盖当前光标所在位置的数据,知道按下ESC键4 复制和粘贴vim在删除数据时,实际上会将数据保存在单独的⼀个寄存器中。
Linux基础命令vim(底⾏模式)#只能从命令模式进⼊底⾏模式
#保存退出
:q #退出
:q! #强制退出
:w #保存
:wq #保存退出
:wq! #强制保存退出
:x #保存退出
#光标移动移动的⾏删除
:n #n 数字跳转到指定的⾏
:1d #删除第⼀⾏
:1,10d #删除多⾏
#替换跟sed⼀样
:%s#old#new#g #全局替换
:1s#admin#root#g #替换指定的⾏
:1,5s#bin#oldboy#g #替换多⾏
# ⽂件另存为
:w new1.txt #将⽂件的内容另存为⼀个新⽂件
:1,10w new2.txt #将⽂件的第⼀⾏到第⼗⾏内容另存为⼀个新⽂件
#导⼊其他⽂件内容进⼊这个⽂件
:$r /etc/hosts #导⼊/etc/hosts⽂件中的内容到此⽂件的结尾:0r /etc/hosts #导⼊/etc/hosts⽂件中的内容到此⽂件的⾏⾸
#搜索
/root #搜索root的字符串
n #向下查找
N #向上查找
/root\c #搜索的时候,忽略⼤⼩写
:noh #取消⾼亮。
有用的命令:vi/vim打开文档后,按shift+:此时光标在:后面%s/vivian/sky/g 是将全文中所有的vivian替换成sky我们一般进行的操作是删除操作,就是替换为空%s/,wangcaiwei//g或%s/wangcaiwei,//g下面是详细的介绍,有其他需求去下面找Linux系统攻略关于vi替换命令的使用说明来源:考试大 2008年01月03日10:50vi/vim 中可以使用:s 命令来替换字符串。
以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/vivian/sky/ 替换当前行第一个vivian 为sky:s/vivian/sky/g 替换当前行所有vivian 为sky:n,$s/vivian/sky/ 替换第n 行开始到最后一行中每一行的第一个vivian 为sky :n,$s/vivian/sky/g 替换第n 行开始到最后一行中每一行所有vivian 为skyn 为数字,若n 为.,表示从当前行开始到最后一行:%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个vivian 为sky:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有vivian 为sky可以使用# 作为分隔符,此时中间出现的/ 不会作为分隔符:s#vivian/#sky/# 替换当前行第一个vivian/ 为sky/:%s+/oradata/apras/+/user01/apras1+ (使用+ 来替换/ ):/oradata/apras/替换成/user01/apras1/1.:s/vivian/sky/ 替换当前行第一个vivian 为sky:s/vivian/sky/g 替换当前行所有vivian 为sky2. :n,$s/vivian/sky/ 替换第n 行开始到最后一行中每一行的第一个vivian 为sky:n,$s/vivian/sky/g 替换第n 行开始到最后一行中每一行所有vivian 为sky(n 为数字,若n 为.,表示从当前行开始到最后一行)3. :%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个vivian 为sky:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有vivian 为sky 4. 可以使用# 作为分隔符,此时中间出现的/ 不会作为分隔符:s#vivian/#sky/# 替换当前行第一个vivian/ 为sky/5. 删除文本中的^M问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。
gvim用法-回复标题:GVim用法详解GVim,全称Gnome Vim,是Vim编辑器的一个图形化版本。
Vim是一款强大的文本编辑器,以其高效的文本操作和高度的可定制性而受到广大程序员和文本工作者的喜爱。
本文将详细解析GVim的使用方法,帮助你更好地掌握这款工具。
一、安装GVim首先,我们需要在系统中安装GVim。
对于Linux用户,可以在终端中输入以下命令进行安装:bashsudo apt-get install vim-gnome对于Windows用户,可以到Vim官方网站下载GVim的安装包,然后按照提示进行安装。
二、启动GVim安装完成后,我们可以通过以下方式启动GVim:1. 在Linux系统中,打开终端,输入`gvim`并回车。
2. 在Windows系统中,找到GVim的快捷方式或安装目录,双击GVim 的可执行文件。
三、GVim的基本操作1. 移动光标:在GVim中,我们可以使用键盘上的方向键或者以下特殊键来移动光标:- `h`:向左移动- `j`:向下移动- `k`:向上移动- `l`:向右移动2. 插入文本:在GVim中,我们可以通过按下`i`键进入插入模式,此时就可以像在普通文本编辑器中一样输入文本。
按下`Esc`键可以退出插入模式,回到正常模式。
3. 删除文本:在正常模式下,我们可以使用以下命令删除文本:- `x`:删除光标所在的字符- `dw`:删除光标所在的单词- `dd`:删除光标所在的行4. 复制和粘贴文本:在正常模式下,我们可以使用以下命令复制和粘贴文本:- `yy`:复制光标所在的行- `p`:在光标下方粘贴已复制的文本四、GVim的高级功能1. 搜索和替换:在正常模式下,我们可以使用以下命令进行搜索和替换:- `/pattern`:搜索指定的模式- `:s/pattern/replacement/g`:替换所有匹配的模式为新的文本2. 分屏编辑:GVim支持分屏编辑,可以同时查看和编辑多个文件。
vivim编辑器使⽤⽅法详解vi编辑器是所有Unix及系统下标准的编辑器,他就相当于系统中的记事本⼀样,它的强⼤不逊⾊于任何最新的⽂本编辑器。
他是我们使⽤系统不能缺少的⼯具。
由于对Unix及系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界⾥畅⾏⽆阻。
vim 具有程序编辑的能⼒,可以以字体颜⾊辨别语法的正确性,⽅便程序设计;vim可以当作vi的升级版本,他可以⽤多种颜⾊的⽅式来显⽰⼀些特殊的信息。
vim会依据⽂件扩展名或者是⽂件内的开头信息,判断该⽂件的内容⽽⾃动的执⾏该程序的语法判断式,再以颜⾊来显⽰程序代码与⼀般信息。
vim⾥⾯加⼊了很多额外的功能,例如⽀持正则表达式的搜索、多⽂件编辑、块复制等等。
这对于我们在Linux上进⾏⼀些配置⽂件的修改⼯作时是很棒的功能。
1.vi/vim是什么? ①vi是Visual Interface的缩写,即可视化接⼝ ②vim是vi iMprove的缩写,即 vi的增强版(具有语法着⾊功能)2.vim模式有哪些?如何切换? ①三种模式 命令模式(默认):刚进⼊vim的时候,默认就是命令模式,可以复制⾏,删除⾏等。
输⼊模式:可以输⼊内容。
末⾏模式:在最下边,除编辑模式,可以输⼊诸多管理员命令 ②模式转换 命令模式→输⼊模式: i:在当前光标所在字符的前⾯,转为输⼊模式 I:在当前光标所在⾏的⾏⾸转换为输⼊模式 a:在当前光标所在字符的后⾯,转为输⼊模式 A:在光标所在⾏的⾏尾,转换为输⼊模式 o:在当前光标所在⾏的下⽅,新建⼀⾏,并转为输⼊模式 O:在当前光标所在⾏的上⽅,新建⼀⾏,并转为输⼊模式 s:删除光标所在字符 r:替换光标处字符 输⼊模式→命令模式 ESC键 命令模式→末⾏模式 输⼊:即可转为末⾏模式 在末⾏模式下 10d:可删除第10⾏ 10,20d:删除10-20⾏ set nu:显⽰⾏号 !命令:可以执⾏bash命令末⾏模式-操作 末⾏模式→命令模式 ESC键 3.使⽤vim如何打开⽂件? ① vim /path/to/somefile :vim后跟⽂件路径及⽂件名,如果⽂件存在,则打开编辑⽂件窗⼝,如果⽂件不存在,则创建⽂件 [root@libaoliang ~]# vim /etc/inittab ② vim + # :打开⽂件,并定位到第#⾏,#代表数字 [root@libaoliang ~]# vim +3 /etc/inittab ③ vim + :打开⽂件,定位到最后⼀⾏ [root@libaoliang ~]# vim + /etc/inittab ④ vim +/PATTERN:打开⽂件,定位到第⼀次被PATTERN匹配到的⾏的⾏⾸ [root@libaoliang ~]# vim +/start /etc/inittab4.关闭⽂件 末⾏模式下: w:保存 q:退出 wq 或 x:保存退出,wq 和 x 都是保存退出 q!:强制退出 w!:强制保存,管理员才有权限 命令模式下: ZZ:保存并退出5.移动光标 命令模式下: ①逐字符移动 h:向左 l:向右 j:向下 k:向上 #h:移动#个字符 ②以单词为单位移动 w:移到下⼀个单词的词⾸ e:跳⾄当前或下⼀个单词的词尾 b:跳⾄当前或上⼀个单词的词⾸ #w:表⽰移动#个单词 ③⾏内跳转 0:绝对⾏⾸ ^:⾏⾸第⼀个⾮空⽩字符 $:绝对⾏尾 ④⾏间跳转 #G:跳转到第#⾏ G:最后⼀⾏ 末⾏模式下: ①⾏间跳转 直接输⼊⾏号回车即可6.翻屏: 命令模式下 Ctrl+f:向下翻⼀屏 Ctrl+b:向上翻⼀屏 Ctrl+d:向下翻半屏 Ctrl+u:向上翻半屏 7.删除 命令模式下 ①删除单个字符: x:删除光标所在处单个字符 #x:删除光标所在处及向后共#个字符 ②删除命令:d d命令跟跳转命令组合使⽤如:d w 表⽰删除光标所在位置到下⼀个单词词⾸所有字符 #d w,#d e,#d b :#dw表⽰删除当前光标所在处及向后第#个单词词⾸所有字符 dd:删除当前光标所在⾏ #d d:删除包含当前光标所在⾏内的#⾏ 末⾏模式下:末⾏模式下位置符号StartADD,EndADDd .:表⽰当前⾏ $:最后⼀⾏ +#:向下的#⾏ $-#:向上的#⾏位置符号末⾏模式下,删除命令d可以跟以上位置符号相结合使⽤ StartADD,EndADD d:删除StartADD到EndADDd位置的所有⾏,例如:10,15d:删除10到15⾏所有内容 .d:删除光标所在⾏,同dd8.粘贴命令: p p(⼩写p):如果删除的或复制的为整⾏内容,则粘贴到光标所在⾏的下⽅,如果复制或删除的内容为⾮整⾏,则粘贴⾄光标所在字符的后⾯ P(⼤写P):如果删除的或复制的为整⾏内容,则粘贴到光标所在⾏的上⽅,如果复制或删除的内容为⾮整⾏,则粘贴⾄光标所在字符的前⾯9.复制命令:y ⽤法同d命令 命令模式 yy:复制当前⾏ yw (y#w,ye,y#e,yb,y#b):复制光标当前位置到下个单词词⾸内容.#代表数字 y#G:复制当前位置当#⾏处的所有内容 末⾏模式 StartADD,EndADD y:复制StartADD到EndADDd位置的所有⾏,例如:10,15d:复制10到15⾏所有内容 +3y:复制当前位置向下3⾏10.修改c:先删除内容,在转换为输⼊模式 c:⽤法同d11.替换:r r:单字符替换,会替换光标选中字符 R:替换模式,可以做字符替换。
详解Linux中退出编辑模式的命令
vim 有三种模式,注意:这三种模式有很多不同的叫法,我这⾥是按照鸟哥的linux书中的叫法。
⼀般指令模式、编辑模式、指令列命令模式
1.vim ⽂件名进⼊⼀般模式;
2.按 i 进⾏编辑进⼊编辑模式;(或者I, o, O, a, A, r, R)
3.编辑结束,按ESC 键跳到⼀般模式模式;
4.按:进⼊指令列命令模式;
进⼊指令列模式后的明林如下
1.保存不退出:
:w 保存⽂件但不退出vi 编辑
:w! 强制保存,不退出vi 编辑
:w file 将修改另存到file中,不退出vi 编辑
2.保存并退出:
:wq 保存⽂件并退出vi 编辑
:wq! 强制保存⽂件并退出vi 编辑
3.不保存并退出:
:q 不保存⽂件并退出vi 编辑
:q! 不保存⽂件并强制退出vi 编辑
:e! 放弃所有修改,从上次保存⽂件开始在编辑
总结
以上所述是⼩编给⼤家介绍的Linux中退出编辑模式的命令,希望对⼤家有所帮助,如果⼤家有任何疑问欢迎给我留⾔,⼩编会及时回复⼤家的!。
Vim的编码详解和中文环境设置很惭愧,作为vim的忠实用户,自从2年多前从help里知道了:edit++enc=xxx这个命令之后,我就没有去了解过vim的编码设定了。
这些年来,我遇到编码出错,总是:edit++enc=xxx。
今天:help了一下encoding等,终于搞清楚了相关的各个变量的作用和关系。
简单的说,有三个设置。
(我下面基本以中文环境来作为说明)1) 在.vimrc或者_vimrc里加入setfileencodings=utf-8,gb2312,gbk,gb18030,big5这句就基本OK了。
vim会依次使用这些编码对文件进行编码的猜测。
2) 如果还是不行,那么在打开文件之后,用:edit++enc=gbk这个命令强制使用某个编码。
3) 如果依然不行,请检查你的$LANG环境变量。
下面是详细的说明。
vim编码主要涉及三个变量。
encodingvim的内部编码,包括内存数据的编码,vim配置文件的编码。
encoding取自变量$LANG,如果$LANG为空,则取latin1。
这个编码应该和你的终端编码保持一致的。
fileencoding文件的编码。
vim在加载文件的时候,会把这个编码转换成encoding参数的编码。
同样的,保存文件的时候,内存的编码会由encoding转变为fileencoding。
需要注意的是,在vimrc里设置这个参数,不会起作用。
因为打开一个文件的时候,fileencodings或者encoding会覆盖fileencoding。
关于这个,可以看下面提到的打开文件流程。
fileencodings=utf-8,gbk,gb2312vim在加载一个文件的时候,会依次尝试使用fileencodings里的编码作为fileencoding。
如果全部失败,那么vim会使用encoding作为fileencoding。
另外,如果vim使用了错误的编码,可以使用edit++enc=gbk这个命令。
VIM命令使用详解
第一部分:
一般模式可用的按钮说明,光标移动、复制粘贴、查找替换等
移动光标的方法
h或向左箭头键(←) 光标向左移动一个字符
j或向下箭头键(↓) 光标向下移动一个字符
k或向上箭头键(↑) 光标向上移动一个字符
i或向右箭头键(→) 光标向下移动一个字符
如果你将右手放在键盘上的话,你会发现hjkl是排列在一起的,因此可以使用这四个按键来移动光标。如果想要
进行多次移动的话,例如向下移动30行,可以使用”30j”或”30↓”的组合键,即加想要进行的次数(数字)后,按下
操作即可
[Ctrl]+[f] 屏幕向下移动一页,相当于[Page Down]按键(常用)
[Ctrl]+[b] 屏幕向上移动一页,相当于[Page UP]按钮(常用)
[Ctrl]+[d] 屏幕向下移动半页
[Ctrl]+[u] 屏幕向上移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n
的n个字符。例如20
0或功能键[Home] 这是数字”0”:移动到这一行的最前面字符处(常用)
$或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行(常用)
nG n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20
行(可配合:set nu)
gg 移动到这个文件的第一行,相当于1G(常用)
N[Enter] n为数字。光标向下移动n行(常用)
查找与替换
/word 向下寻找一个名称为Word的字符串。例如要在文件内查找vbird这个字符串,
就输入/vbird即可(常用)
?word 向上寻找一个字符串名称为Word的字符串
n 这个n是英文按键。代表重复前一个查找的操作。举例来说,如果刚才我们执
行/vbird去向下查找vbird这个字符串,则按下n后,会向下继续查找下一个名
称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续查找名
称为vbird的字符串
N 这个N是英文按键。与n刚好相反,为”反向”进行前一个查找操作。例如输入
/vbird后,按下N则表示向上查找vbird
使用/word配合n及N是非常有帮助的。可以让你重复地找到一些关键字
:n1,n2s/word1/word2/g n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串
替换为word2。举例来说,在100到200行之前查找vbird并替换VBIRD则
用”:100,200s/vbird/VBIRD/g”(常用)
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为word2。且在替
换前显示提示字符给用户确认(confirm)是否需要替换(常用)
删除、复制与粘贴
x,X 在一行字当中,x为向后删除一个字符(相当于[Del]按键),X为向前删除一个字
符(相当于[Backspace])(常用)
nx n为数字,连续向后删除n个字符。举例来说,我要连续删除10个字符,”10x”
dd 删除光标所在的那一整行(常用)
ndd n为数字。删除光标据的向下n行,例如20dd则是删除20行(常用)
d1G 删除光标所在到第一行的所有数据
dG 删除从光标所在到最后一行的所有数据
d$ 删除从光标所在处到该行的最后一个字符
d0 那个是数字的0,删除从光标所在处到该行的最前面一个字符
yy 复制光标所在的那一整行(常用)
nyy n为数字。复制光标所在的向下n行,例如20yy则是复制20行(常用)
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行。举例来说,
我目前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据
会粘贴在原本的20行之后,也即由21行开始粘贴。但如果是按下P呢?那么
原本的第20行会被变成30行(常用)
移动光标的方法
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除10行,[10cj]
u 复原前一个操作(常用)
[Ctrl]+r 重做上一个操作(常用)
这个u与[Ctrl]+r是很常用的命令。一个是复原,另一个则是重做一次,利用它们,你的编辑会更加得心应手
. 不要怀疑。这就是一个小数点。意思是重复前一个操作的意思。如果你想要重
复删除、重复粘贴等操作,按下小数点“.”就好了(常用)
第二部分:
一般模式切换到编辑模式的可用的按钮说明
进入插入或替换的编辑模式
i,I 进入插入模式(Insert mode):
i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入(常
用)
a,A 进入插入模式(Insert mode):
a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字
符处开始插入(常用)
o,O 进入插入模式(Insert mode):
这是英文字母o的大小写。o为在目前光标所在的下一行处插入新的一行;O为
在目前光标所在处的上一行插入新的一行(常用)
r,R 进行替换模式(Replace mode):
r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,直到按下
[Esc]键为止(常用)
上面的这些按键中,在vi界面的左下角会出现“--INSERT—”或“--REPLACE--”的字样。由名称就知道该操作了吧。
特别注意的是,我们上面也提过了,你想要在文件里面输入字符时,一定要在左下角处看到INSERT或REPLACE才
能输入
[Esc] 退出编辑模式,回到一般模式中(常用)
第三部分:
一般模式切换到命令行模式的可用的按钮说明
命令行的保存、离开等命令
:w 将编辑的数据写入硬盘文件中(常用)
:w! 若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入,还是跟
你对该文件的文件权限有关啊
:q 离开vi(常用)
:q! 若曾修改过文件,又不想存储,使用“!”为强制离开不保存文件
注意一下啊,那个感叹号(!)在vi当中经常具有“强制”的意思
:wq 保存后离开,若为“:wq!”则为强制保存后离开(常用)
ZZ 这是大写的Z。若文件没有更改,则不保存离开,若文件已经被更改过,则保存
后离开
:w[filename] 将编辑的数据保存成另一个文件(类似于另存文件)
:r[filename] 在编辑的数据中,读入另一个文件的数据,即将“filename”这个文件内容加到
光标所在行的后面
:n1,n2 w[filename] 将n1到n2的内容保存成filename这个文件
:! command 暂时离开vi到命令行模式下执行command的显示结果。例如“:! ls /home”即
可在vi当中查看/home下面以ls输出的文件信息
:set nu 显示行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu 与set nu相反,为取消行号
特别注意,在vi中,数字是很有意义的。数字通常代表重复做几次的意思。也有可能代表去到第几个什么什么
的意思。举例来说,要删除50行,则是用“50dd”对。数字加在操作之前 ,那我要向下移动20行呢?那就
是“20j”或者是“20↓”即可。