Linux中使用vim命令进行文本编辑和编程

合集下载

vim编辑器使用手册

vim编辑器使用手册

一.vi的基本概念文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim(vi的增强版本)和nano。

vi和vim是Linux系统中最常用的编辑器。

vi编辑器是所有Linux系统的标准编辑器,用于编辑任何ASCII文本,对于编辑源程序尤其有用。

它功能非常强大,通过使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制和粘贴等操作。

vi编辑器有3种基本工作模式,分别是命令模式、插入模式和末行模式。

在使用时,一般将末行模式也算入命令行模式。

各模式的功能区分如下。

1.命令行模式控制屏幕光标的移动,字符、字或行的删除,移动、复制某区域及进入插入模式,或者到末行模式。

2.插入模式只有在插入模式下才可以做文本输入,按“ESC”键可回到命令行模式。

3.末行模式将文件保存或退出vi编辑器,也可以设置编辑环境,如寻找字符串、列出行号等。

二.vi的基本操作1.进入vi编辑器在系统shell提示符下输入vi及文件名称后,就进入vi编辑画面。

如果系统内还不存在该文件,就意味着要创建文件;如果系统内存在该文件,就意味着要编辑该文件。

下面就是用vi编辑器创建文件的示例。

#vi filename~进入vi之后,系统处于命令行模式,要切换到插入模式才能够输入文字。

2.切换至插入模式编辑文件在命令行模式下按字母“i”就可以进入插入模式,这时候就可以开始输入文字了。

3.退出vi及保存文件在命令行模式下,按冒号键“:”可以进入末行模式,例如:[:w filename]将文件内容以指定的文件名filename保存。

输入“wq”,存盘并退出vi。

输入“q!”,不存盘强制退出vi。

下面表示vi编辑器的3种模式之间的关系。

三.命令行模式操作1.进入插入模式按“i”:从光标当前位置开始输入文件。

按“a”:从目前光标所在位置的下一个位置开始输入文字。

按“o”:插入新的一行,从行首开始输入文字。

按“I”:在光标所在行的行首插入。

LinuxVim编辑与退出

LinuxVim编辑与退出

LinuxVim编辑与退出vim主要有两(3)种模式:编辑模式:键盘上的输⼊被当作⽂本写⼊命令模式:键盘上的输⼊被解释为命令,⽐如配置编辑器、⽂本查找和替换、选择⽂本有⼀些操作可以参考:编辑a在当前光标位置后⾯开始插⼊A在当前⾏⾏末开始插⼊i在当前光标前开始插⼊I在当前光标⾏⾏⾸开始插⼊o从当前光标开始下⼀⾏开始插⼊O从当前光标开始前⼀⾏开始插⼊退出在命令模式键⼊":"到末⾏模式::w 保存不退出:w 新⽂件名把⽂件另存为新⽂件:q 不保存退出:wq 保存退出:! 强制:q! 强制不保存退出,⽤于修改⽂件之后,不保存数据退出:wq! 强制保存退出,当⽂件的所有者或 root ⽤户,对⽂件没有写权限的时候,强制写⼊数据使⽤保存退出1. “esc”键回到命令模式2. ":" 键到末⾏模式3. 输⼊“wq” + Enter执⾏ 保存退出,按住shift+zz 等同于":wq"不保存退出/正常退出1. “esc”键回到命令模式2. ":" 键到末⾏模式3. 输⼊“q” + Enter执⾏ 正常退出,即不保存已经修改的内容就退出强制退出1. “esc”键回到命令模式2. ":" 键到末⾏模式3. 输⼊“q!” + Enter执⾏ 强制退出命令模式常⽤命令查找/查找内容从光标所在⾏向下查找查找内容从光标所在⾏向上查找移动光标上下左右移动光标gg 移动光标到⽂件头G (shift + g)移动光标到⽂件尾^ 移动到⾏⾸$ 移动到⾏尾:n 移动到第⼏⾏(这⾥的 n 是数字)。

linux vi用法

linux vi用法

linux vi用法
LinuxVI编辑器是一个非常强大的文本编辑器,通常用于在命令行界面中编辑文本文件。

它不仅可以编辑文本文件,还可以用于编写脚本,记笔记等。

以下是一些常用的Linux VI编辑器用法:
1. 打开文件:在终端中输入vi filename,即可打开一个名为filename的文件。

2. 插入模式:按下i键即可进入插入模式,此时可以开始编辑文本。

3. 保存并退出:按下Esc键,输入:wq即可保存并退出文件。

4. 放弃修改退出:按下Esc键,输入:q!即可放弃修改并退出文件。

5. 查找字符串:在命令模式下输入/字符串,即可查找当前文件中包含该字符串的位置。

6. 替换字符串:在命令模式下输入:s/old/new/g,即可将所有的old替换为new。

7. 删除一行:在命令模式下输入dd即可删除一行。

8. 撤销操作:在命令模式下输入u即可撤销上一次操作。

9. 复制粘贴:在命令模式下将光标移动到需要复制的文本上,按下yy即可复制,将光标移动到需要粘贴的位置,按下p即可粘贴。

总之,Linux VI编辑器是一个非常实用的编辑器,它的功能非常强大,掌握一些基本的用法,可以提高工作效率。

Vim编辑指令

Vim编辑指令

Vim编辑指令基本命令Esc 或 Ctrl+[ 进⼊普通模式i (插⼊) a (附加) 进⼊插⼊模式wq 回车保存退出vim后⾯加上你要打开的已存在的⽂件名或者不存在(则作为新建⽂件)的⽂件名。

打开Xfce终端$ vim practice_1.txt直接使⽤vim也可以打开vim编辑器 vim进⼊命令⾏模式后输⼊:e ⽂件路径同样可以打开相应⽂件游标移动h左l右(⼩写L)j下k上w移动到下⼀个单词b移动到上⼀个单词在普通模式下使⽤下⾯的键将进⼊插⼊模式,并可以从相应的位置开始输⼊命令说明i在当前光标处进⾏编辑I在⾏⾸插⼊A在⾏末插⼊a在光标后插⼊编辑o在当前⾏后插⼊⼀个新⾏O在当前⾏前插⼊⼀个新⾏cw替换从光标所在位置后到⼀个单词结尾的字符请尝试不同的从普通模式进⼊插⼊模式的⽅法,在最后⼀⾏shiyanlou前⾯加上www.,注意每次要先回到普通模式才能切换成以不同的⽅式进⼊插⼊模式保存⽂档(命令⾏模式下保存⽂档)从普通模式输⼊:进⼊命令⾏模式,输⼊w回车,保存⽂档。

输⼊:w ⽂件名可以将⽂档另存为其他⽂件名或存到其它路径下退出vim(命令⾏模式下退出vim)从普通模式输⼊:进⼊命令⾏模式,输⼊wq回车,保存并退出编辑命令说明q!强制退出,不保存q退出wq!强制保存并退出w <⽂件路径>另存为saveas ⽂件路径另存为x保存并退出wq保存并退出普通模式下退出vim普通模式下输⼊Shift+zz即可保存退出vim删除⽂本(普通模式下删除vim⽂本信息)进⼊普通模式,使⽤下列命令可以进⾏⽂本快速删除命令说明x删除游标所在的字符X删除游标所在前⼀个字符Delete同xdd删除整⾏dw删除⼀个单词(不适⽤中⽂)d$或D删除⾄⾏尾d^删除⾄⾏⾸dG删除到⽂档结尾处d1G删⾄⽂档⾸部u撤销ndd删除光标所在位置起的多⾏n为数字yy复制光标当前所在的那⼀⾏nyy复制多⾏为n的数字p将已复制的内容粘贴到光标所在的位置的下⼀⾏⼤P将已复制的内容粘贴到光标所在位置的上⼀⾏np粘贴多⾏到光标的下⼀⾏为n的数字cttl+r重复上⼀次操作$跳到⼀⾏的尾部0跳到⼀⾏的头部gg移动到这个⽂件的第⼀⾏G跳到这个⽂件的最后⼀⾏nG跳到n⾏set nu显⽰⾏号H光标移动到屏幕的最上⽅那⼀⾏的第⼀个字符M光标移动到屏幕的中央那⼀⾏的第⼀个字符L光标移动到屏幕的最下⾯那⼀⾏的第⼀个字符vim重复命令重复执⾏上次命令在普通模式下.(⼩数点)表⽰重复上⼀次的命令操作拷贝测试⽂件到本地⽬录$ cd /home/shi$ cp /etc/protocols .游标的快速跳转普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现⾏间跳转和⾏内跳转⾏间跳转命令说明nG(n shift+g)游标移动到第 n ⾏(如果默认没有显⽰⾏号,请先进⼊命令模式,输⼊:set nu以显⽰⾏号) gg游标移动到第⼀⾏G(Shift+g)到最后⼀⾏⼩技巧:你在完成依次跳转后,可以使⽤ Ctrl+o 快速回到上⼀次(跳转前)光标所在位置,这个技巧很实⽤,⽐如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。

linuxvim操作笔记

linuxvim操作笔记

linuxvim操作笔记V1. 默认字符编码为utf8,打开使⽤gb2312编码的⽂件,中⽂全为乱码,如何恢复正常显⽰? 输⼊ edit ++enc=cp936V2. 如何在vim系统中执⾏命令?输⼊ !cmdV3. 使⽤vim直接打开并编辑.*gz⽂件,⽽⽆须解压,读取,编辑,再压缩.压缩⽂件的⽀持是通过pluginvim ls-lrR.txt.gzV4. 如何Vim⽀持语法加亮?⼀劳永逸的⽅法,在~/.vimrc中增加如下语句syntax on临时性的⽅法, 输⼊命令:syntax onV5. Vim如何在结构⽂档中快速切换,⽐如 C语⾔{ }块之间切换.输⼊在{}之间,输⼊%即可V6. 如何让Vim记下我的编辑状态,以便下次快速恢复⼯作?输⼊ :mksession file_name_your_sessionV7. 如何让Vim告诉你编辑⽂件的字节数,字数,当前位置信息?输⼊ g CTRL_GV8. 输⼊help,打开了帮助窗⼝,如何快速关闭?输⼊CTRL-W ,然后再输⼊CTRL-Q,或者输⼊CTRL-W qV9. 我要每天编辑⽇志,我不想去输⼊⽇期与时间,该怎么办?现要如这样的⽇期形式Mon Sep 19 23:19:03 CST 2005,简单,定义⼀个快捷键F2,在vim中做这样⼀个映射:map gg:read !dateV10. 如何使⽤Vim改变⽂本⽂件的编码?⽐如,原有1个⽂档为utf-8编码的,现在要将它改为cp936编码,可⽤如下指令:set fileencoding=cp936然后再保存⽂件:wV11. 如何将vim记住我的配置选项(⽐如默认的编码⽅式,⽂件类型等)?请将你的配置命令写到~/.vimrc配置脚本⽂件中V12. 如何查看当前编辑的C/C++源⽂件所有include⽂件路径?输⼊:checkpathV13. 如何保存全局的配置选现(对所有⽤户都可⽤)?先输⼊:version, 查看系统vimrc配置⽂件的值再编辑系统vimrc配置⽂件,加⼊你想要vim执⾏的命令V14. 如何快速复制Buffer中的⼀⾏⽂字?输⼊yy先记录到缓冲区, 移动光标到想要粘贴处,按pV15. 如何利⽤宏命令,⽣成数字顺序列表?1. Create the first list entry, make sure it starts with a number.2. qa - start recording into buffer ‘a’3. Y - yank the entry4. p - put a copy of the entry below the first one5. CTRL-A - increment the number6. q - stop recording7. @a - repeat the yank, put and increment timesV16. 如何实现⽂本的折叠(Fold)?⾃动Fold,假设你的⽂件是C源⽂件,输⼊:set foldmethod=indent:set foldenable⼿动Fold,选中你要折的⾏,在Normal模式下输⼊命令 zf当Fold创建后,移动光标到Fold所在⾏输⼊ zo, 打开相应的Foldzc, 关闭相应的FoldzM, 关闭⽂件中所有的FoldzR, 打开⽂件中所有的Foldza, ⾃动打开或关闭相应的FoldV17. 如何查看当前⽂件中的字,字符个数?输⼊g CTRL-G 即可,所有字节数按UTF-8的形式进⾏计数.V18. 如何在Visual模式下快速搜索当前选中的⽂字?为了不改变⽤户使⽤习惯,我们依然沿⽤*和#这两键vnoremap * y/“vnoremap # y?“注: 指令插⼊命名寄存器的内容V19. 如何在源代码中不同块/段落间来回跳跃?输⼊ { , 前进⾄上⼀段落输⼊ } , 前进⾄后⼀段落V20. 如何⽂本中的TAB转化为固定长度的空格?输⼊ :set expandtab输⼊ :set tabstop=4输⼊ :retabV21. vim中paste剪贴板中的数据如何让它不缩进,保持原格式?paste时,输⼊的⽂本⼤多会包含换⾏字符,还有⼀些特殊字符,vim会⾃动对⽂本缩进,并且⾃动换⾏等,为了避免这些智能选项的影响,可以把paste开关打开V22. 有趣的⼏个功能gg 到⽂件⾸gd 到变量声明gg=G 全篇⾃动缩进 , =G 单⾏缩进K(shift+k) mancrl+] 函数原型处 crl+t 回 ( ctags )ctl+p ⾃动补全( 编辑状态 ):X 加密保存( 要输⼊密码 )使⽤说明:以下的例⼦中 xxx 表⽰在命令模式下输⼊ xxx 并回车以下的例⼦中 :xxx 表⽰在扩展模式下输⼊ xxx 并回车⼩括号中的命令表⽰相关命令.在编辑模式或可视模式下输⼊的命令会另外注明.1. 查找/xxx(?xxx) 表⽰在整篇⽂档中搜索匹配xxx的字符串, / 表⽰向下查找, ? 表⽰向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.⼀般来说是区分⼤⼩写的, 要想不区分⼤⼩写, 那得先输⼊:set ignorecase查找到以后, 再输⼊ n 查找下⼀个匹配处, 输⼊ N 反⽅向查找.*(#) 当光标停留在某个单词上时, 输⼊这条命令表⽰查找与该单词匹配的下(上)⼀个单词. 同样, 再输⼊ n 查找下⼀个匹配处, 输⼊ N 反⽅向查找.g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, ⽽是匹配包含该单词的所有字符串.gd 本命令查找与光标所在单词相匹配的单词, 并将光标停留在⽂档的⾮注释段中第⼀次出现这个单词的地⽅.% 本命令查找与光标所在处相匹配的反括号, 包括 () [] {}f(F)x 本命令表⽰在光标所在⾏进⾏查找, 查找光标右(左)⽅第⼀个x字符.找到后:输⼊ ; 表⽰继续往下找输⼊ , 表⽰反⽅向查找2. 快速移动光标在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很⽅便的进⾏光标定位和编辑. 因此能更快⼀点移动光标是很有⽤的.w(e) 移动光标到下⼀个单词.b 移动光标到上⼀个单词.0 移动光标到本⾏最开头.^ 移动光标到本⾏最开头的字符处.$ 移动光标到本⾏结尾处.H 移动光标到屏幕的⾸⾏.M 移动光标到屏幕的中间⼀⾏.L 移动光标到屏幕的尾⾏.gg 移动光标到⽂档⾸⾏.G 移动光标到⽂档尾⾏.c-f (即 ctrl 键与 f 键⼀同按下) 本命令即 page down.c-b (即 ctrl 键与 b 键⼀同按下, 后同) 本命令即 page up.” 此命令相当有⽤, 它移动光标到上⼀个标记处, ⽐如⽤ gd, * 等查找到某个单词后, 再输⼊此命令则回到上次停留的位置.‘. 此命令相当好使, 它移动光标到上⼀次的修改⾏.`. 此命令相当强⼤, 它移动光标到上⼀次的修改点.3. 拷贝, 删除与粘贴在 vi 中 y 表⽰拷贝, d 表⽰删除, p 表⽰粘贴. 其中拷贝与删除是与光标移动命令结合的, 看⼏个例⼦就能够明⽩了.yw 表⽰拷贝从当前光标到光标所在单词结尾的内容.dw 表⽰删除从当前光标到光标所在单词结尾的内容.y0 表⽰拷贝从当前光标到光标所在⾏⾸的内容.d0 表⽰删除从当前光标到光标所在⾏⾸的内容.y$ 表⽰拷贝从当前光标到光标所在⾏尾的内容.d$ 表⽰删除从当前光标到光标所在⾏尾的内容.yfa 表⽰拷贝从当前光标到光标后⾯的第⼀个a字符之间的内容.dfa 表⽰删除从当前光标到光标后⾯的第⼀个a字符之间的内容.特殊地:yy 表⽰拷贝光标所在⾏.dd 表⽰删除光标所在⾏.D 表⽰删除从当前光标到光标所在⾏尾的内容.关于拷贝, 删除和粘贴的复杂⽤法与寄存器有关, 可以⾃⾏查询.4. 数字与命令在 vi 中数字与命令结合往往表⽰重复进⾏此命令, 若在扩展模式的开头出现则表⽰⾏号定位. 如:5fx 表⽰查找光标后第 5 个 x 字符.5w(e) 移动光标到下五个单词.5yy 表⽰拷贝光标以下 5 ⾏.5dd 表⽰删除光标以下 5 ⾏.y2fa 表⽰拷贝从当前光标到光标后⾯的第⼆个a字符之间的内容.:12,24y 表⽰拷贝第12⾏到第24⾏之间的内容.:12,y 表⽰拷贝第12⾏到光标所在⾏之间的内容.:,24y 表⽰拷贝光标所在⾏到第24⾏之间的内容. 删除类似.5. 快速输⼊字符在 vi 中, 不要求你输⼊每⼀个字符, 可以有很多种⽅法快速输⼊⼀些字符.使⽤ linux/unix 的同学⼀定有⼀个经验, 在命令⾏下输⼊命令时敲⼊头⼏个字符再按TAB 系统就会⾃动将剩下的字符补齐, 假如有多个匹配则会打印出来. 这就是著名的命令补齐(其实windows中也有⽂件名补齐功能). vi 中有许多的字符串补齐命令, ⾮常⽅便.c-p(c-n) 在编辑模式中, 输⼊⼏个字符后再输⼊此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输⼊此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的⽂件中进⾏匹配.c-x-l 在编辑模式中, 此命令快速补齐整⾏内容, 但是仅在本窗⼝中出现的⽂档中进⾏匹配.c-x-f 在编辑模式中, 这个命令表⽰补齐⽂件名. 如输⼊:/usr/local/tom 后再输⼊此命令则它会⾃动匹配出:/usr/local/tomcat/abbr 即缩写. 这是⼀个宏操作, 可以在编辑模式中⽤⼀个缩写代替另⼀个字符串. ⽐如编写java⽂件的常常输⼊ System.out.println, 这很是⿇烦, 所以应该⽤缩写来减少敲字. 可以这么做::abbr sprt System.out.println以后在输⼊sprt后再输⼊其他⾮字母符号, 它就会⾃动扩展为System.out.println6. 替换替换是 vi 的强项, 因为可以⽤正规表达式来匹配字符串.以下提供⼏个例⼦.:s/aa/bb/g 将光标所在⾏出现的所有包含 aa 的字符串中的 aa 替换为 bb:s/\/bb/g 将光标所在⾏出现的所有 aa 替换为 bb, 仅替换 aa 这个单词:%s/aa/bb/g 将⽂档中出现的所有包含 aa 的字符串中的 aa 替换为 bb:12,23s/aa/bb/g 将从12⾏到23⾏中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/^/#/ 将从12⾏到23⾏的⾏⾸加⼊ # 字符:%s= *$== 将所有⾏尾多余的空格删除:g/^\s*$/d 将所有不包含字符(空格也不包含)的空⾏删除.7. 多⽂件编辑在⼀个 vim 程序中打开很多⽂件进⾏编辑是挺⽅便的.:sp(:vsp) ⽂件名 vim 将分割出⼀个横(纵)向窗⼝, 并在该窗⼝中打开新⽂件.从 vim6.0 开始, ⽂件名可以是⼀个⽬录的名称, 这样, vim 会把该⽬录打开并显⽰⽂件列表, 在⽂件名上按回车则在本窗⼝打开该⽂件, 若输⼊ O 则在新窗⼝中打开该⽂件, 输⼊ ? 可以看到帮助信息.:e ⽂件名 vim 将在原窗⼝中打开新的⽂件, 若旧⽂件编辑过, 会要求保存.c-w-w vim 分割了好⼏个窗⼝怎么办? 输⼊此命令可以将光标循环定位到各个窗⼝之中.:ls 此命令查看本 vim 程序已经打开了多少个⽂件, 在屏幕的最下⽅会显⽰出如下数据:1 %a “usevim.html” ⾏ 1622 # “xxxxxx.html” ⾏ 0其中:1 表⽰打开的⽂件序号, 这个序号很有⽤处.%a 表⽰⽂件代号, % 表⽰当前编辑的⽂件,# 表⽰上次编辑的⽂件“usevim.html” 表⽰⽂件名.⾏ 162 表⽰光标位置.:b 序号(代号) 此命令将指定序号(代号)的⽂件在本窗⼝打开, 其中的序号(代号)就是⽤ :ls 命令看到的.:set diff 此命令⽤于⽐较两个⽂件, 可以⽤:vsp filename命令打开另⼀个⽂件, 然后在每个⽂件窗⼝中输⼊此命令,就能看到效果了.8. 宏替换vi 不仅可以⽤ abbr 来替换⽂字, 也可以进⾏命令的宏定义. 有些命令输起来很费劲, 因此我把它们定义到 - 上, 这样就很⽅便了.这些配置可以预先写到 ~/.vimrc (windows 下为 $VIM/_vimrc) 中, 写进去的时候不⽤写前⾯的冒号.:nmap :nohls 取消被搜索字串的⾼亮:nmap w 命令模式下转移光标到不同窗⼝:imap 输⼊模式下运⾏:nmap :%s= *$== 删除所有⾏尾多余的空格.:imap 同上:java 中: (注, 这⾥为什么说 java 中, 因为以下定义对其他⽂件格式不起作⽤, 下⽂会说到如何实现这⼀点):nmap :comp javac:mak -d . %此命令⽤ javac 编译 java ⽂件, 它会⾃动将光标定位到出错点. 不过这需要定义⼀个 javac.vim ⽂件在 $VIM/compiler 下, 在 javac.vim ⾥⾯只有两⾏字:setlocal makeprg=javacsetlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#:nmap :comp ant:mak此命令⽤ ant 编译 java ⽂件, 它会⾃动将光标定位到出错点. ⼀般来说, 安装vim 后已经有了compiler/ant.vim⽂件, 因此这个命令可以直接使⽤. 但是需要在当前⽬录下有 build.xml ⽂件, 当然还必须安装 ant 才⾏.:nmap :cl 此命令⽤于查看所有的编译错误.:imap:nmap :cc 此命令⽤于查看当前的编译错误.:imap:nmap :cn 此命令⽤于跳到下⼀个出错位置.:imap:nmap :cp 此命令⽤于跳到上⼀个出错位置.:imap:nmap :JavaBrowser此命令⽤于在窗⼝左部分割出⼀个新窗⼝, ⾥⾯的内容是 java 的资源树, 包括本⽂件中出现的类, 类的成员变量及成员⽅法, 就好像 JCreator 表现的那样.在这个窗⼝中输⼊ ? 会看到帮助. 嘿嘿, 很好⽤, 不过需要 ctags ⽀持.:imap9. TABTAB 就是制表符, 单独拿出来做⼀节是因为这个东西确实很有⽤.<< 输⼊此命令则光标所在⾏向左移动⼀个 tab.>> 输⼊此命令则光标所在⾏向右移动⼀个 tab.5>> 输⼊此命令则光标后 5 ⾏向右移动⼀个 tab.:12,24> 此命令将12⾏到14⾏的数据都向右移动⼀个 tab.:12,24>> 此命令将12⾏到14⾏的数据都向右移动两个 tab.那么如何定义 tab 的⼤⼩呢? 有⼈愿意使⽤ 8 个空格位, 有⼈⽤4个, 有的⽤2个.有的⼈希望 tab 完全⽤空格代替, 也有的⼈希望 tab 就是 tab. 没关系, vim 能帮助你.以下的设置⼀般也都先写⼊配置⽂件中, 免得⽼敲.:set shiftwidth=4 设置⾃动缩进 4 个空格, 当然要设⾃动缩进先.:set sts=4 即设置 softtabstop 为 4. 输⼊ tab 后就跳了 4 格.:set tabstop=4 实际的 tab 即为 4 个空格, ⽽不是缺省的 8 个.:set expandtab 在输⼊ tab 后, vim ⽤恰当的空格来填充这个 tab.10. autocmd这个命令⼗分的强⼤, 可以⽤这个命令实现对不同的⽂件格式应⽤不同的配置; 可以在新建⽂件时⾃动添加上版权声明等等. 这些命令⼀般定义在 ~/.vimrc 这样的配置⽂件⾥⾯. 由于他很强⼤, 所以我不能给出很具体的说明, 只能举⼏个例⼦, 详细的请看帮助. :autocmd! 删除所有之前的⾃动命令.autocmd FileType java source ~/.vim/files/java.vimautocmd FileType java source ~/.vim/files/jcommenter.vim以上两条命令让我在打开 java ⽂件时才应⽤后⾯提到的两个配置⽂件.autocmd BufNewFile *.java 0r ~/.vim/files/skeletons/java.skel以上这条命令让我在新建 java ⽂件时⾃动加⼊ java.skel ⽂件的内容.autocmd BufNewFile *.java normal gnp以上这条命令让我在新建 java ⽂件时⾃动运⾏ gnp 命令, 这个命令进⾏⼀些特殊化处理, ⽐如将新 java ⽂件中的 __date__ 替换成今天的⽇期什么的.11. 常⽤脚本在 你可以发现很多脚本(script), 这些脚本常常有让你意想不到的作⽤.我常⽤的有:jcommenter.vim ⾃动加⼊ javadoc 风格的注释.JBrowser.vim 类资源浏览. C, C++ 等可以⽤ Tlist还有许多有⽤的, ⽐如 checkstyle.vim 可以检验你的编程风格, jad.vim 可以直接反编译 .class ⽂件等等.12. 常⽤配置在~/.vimrc 配置⽂件中你常常需要⼀些个性化配置. ⽐如上⾯写的⼀些宏定义, ⼀些autocmd 定义等等. ⽐如:set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc这样在vim中打开⽂件时, 按 tab 键补齐⽂件名时它会忽略上述⽂件.set nu 显⽰⾏号set ai 设置⾃动缩进map Y y$ 让 Y 和 D ⼀样, 要不然 Y 的本意和 yy ⼀样.13. 其他还有许多有意思的命令, 记录在这⾥免得忘记.. 重复上次编辑命令.:g/^/exec “s/^/”.strpart(line(”.”).” “, 0, 4) 在⾏⾸插⼊⾏号:runtime! syntax/2html.vim 转换 txt 成 html, 会按照你的颜⾊配置来转。

vim命令及快捷键

vim命令及快捷键

vim命令及快捷键[1. 关于Vim]vim是我最喜欢的编辑器,也是linux下第⼆强⼤的编辑器。

虽然emacs是公认的世界第⼀,我认为使⽤emacs并没有使⽤vi进⾏编辑来得⾼效。

如果是初学vi,运⾏⼀下vimtutor是个聪明的决定。

(如果你的系统环境不是中⽂,⽽你想使⽤中⽂的vimtutor,就运⾏vimtutor zh)[1.1 Vim的⼏种模式]正常模式:可以使⽤快捷键命令,或按:输⼊命令⾏。

插⼊模式:可以输⼊⽂本,在正常模式下,按i、a、o等都可以进⼊插⼊模式。

可视模式:正常模式下按v可以进⼊可视模式,在可视模式下,移动光标可以选择⽂本。

按V进⼊可视⾏模式,总是整⾏整⾏的选中。

ctrl+v进⼊可视块模式。

替换模式:正常模式下,按R进⼊。

[2. 启动Vim]vim -c cmd file: 在打开⽂件前,先执⾏指定的命令;vim -r file: 恢复上次异常退出的⽂件;vim -R file: 以只读的⽅式打开⽂件,但可以强制保存;vim -M file: 以只读的⽅式打开⽂件,不可以强制保存;vim -y num file: 将编辑窗⼝的⼤⼩设为num⾏;vim + file: 从⽂件的末尾开始;vim +num file: 从第num⾏开始;vim +/string file: 打开file,并将光标停留在第⼀个找到的string上。

vim --remote file: ⽤已有的vim进程打开指定的⽂件。

如果你不想启⽤多个vim会话,这个很有⽤。

但要注意,如果你⽤vim,会寻找名叫VIM的服务器;如果你已经有⼀个gvim在运⾏了,你可以⽤gvim --remote file在已有的gvim中打开⽂件。

[3. ⽂档操作]:e file --关闭当前编辑的⽂件,并开启新的⽂件。

如果对当前⽂件的修改未保存,vi会警告。

:e! file --放弃对当前⽂件的修改,编辑新的⽂件。

:e+file -- 开始新的⽂件,并从⽂件尾开始编辑。

vim编辑器的使用

vim编辑器的使用

vim编辑器的使⽤这⾥主要介绍vim编辑器的⼀些常⽤命令和⽅法,主要包括: vim编辑器的基本使⽤,包括vi的启动与退出、⼯作模式的切换、光标的移动、屏幕的滚动、⽂本的插⼊与删除、复制与粘帖、查找与替换等。

vim编辑器之程序编辑,包括程序设计中光标的跳转、关键字的补全,以及代码的缩进等。

希望通过本节的学习,能够基本掌握vi编辑器的使⽤⽅法和相关技巧,能够独⽴完成程序源代码的编辑和修改。

1、 vim编辑器的基本使⽤ vim编辑器是Linux系统下的标准编辑器。

虽然命令繁多复杂,并且绝⼤多数功能的输⼊都依靠键盘来完成,但如果我们熟悉掌握之后就会发现vim编辑器的功能、效率等都是其他图形界⾯编辑器⽆法⽐拟的,下⾯让我们来揭开它的神秘⾯纱。

1.1、 vim的启动 在终端输⼊命令vim,后⾯接着输⼊想要创建或编辑的⽂件名,即可进⼊vim编辑器。

$ vim test.c 如果vi命令后⾯所输⼊的⽂件不存在,则系统会⾃动创建⼀个以该字符串命名的⽂本⽂件。

如上图,光标停留在左上⽅,由于新建⽂件中没有任何内容,所以每⼀⾏的开头都为波浪线。

窗⼝的底部为状态栏,显⽰当前编辑⽂件的相关信息。

打开⽂件后,光标停留在屏幕左上⽅。

状态栏显⽰了当前编辑⽂件的⽂件名、⾏数以及字符数等信息。

vi命令打开⽂件时还可以带参数,这些参数⽤于修正vi的打开⽅式,主要包括如下:-R :以只读⽅式打开⽂件。

如果只需阅读⽂件内容⽽不想对其进⾏修改时,可以使⽤这个参数,以防对⽂件的误操作,-x:该参数可以在保存⽂件时对其进⾏加密,以后每次打开都需要输⼊密钥,否则将出现乱码。

1.2 、vim的⼯作模式 vim有3种⼯作模式:普通模式、编辑模式和命令模式,这3种模式之间可以相互切换。

(1)、普通模式 由Shell进⼊vim编辑器时,⾸先进⼊普通模式。

在普通模式下,从键盘输⼊任何字符都被当作命令来解释。

普通模式下没有任何提⽰符,当输⼊命令时⽴即执⾏,不需要回车,⽽且输⼊的字符不会在屏幕上显⽰出来。

vivim编辑器的使用

vivim编辑器的使用
处, -m 被修改后的文件不允许被写入硬盘, -M 禁止对文件进行修改, -e 以ex 一种UNIX系统中常见的文本编辑
器 的操作方式运行vi,
3.5 使用vi进行录入
使用vi一段并保存
3.6 使用vi修改文本
对的进行整理 修正错误
思考与练习
vi为什么要使用多模式切换的方式进行文 本编辑操作,
:recover
恢复文件,
3. 3.3 光标移动
k 光标上移一行, j 光标下移移行, h 光标左移一个字符, l 光标右移一个字符, H 光标移到屏幕顶行, M 光标移到屏幕中间, L 光标移到屏幕底行,
w 行内移动到下一个词的开头, e 行内移动到单词的结尾, b 行内移动到前一个单词的开头, 0 移动到所在行行首, 移动到所在行行尾, ^ 移动到所在行的一个非空字符, :n光标跳转到第n行,
Linux应用与开发典型实例精讲
配套教材:
Linux应用与开发典型实例精讲
邱铁、于玉龙、徐子川编著. 清华大学出版社. 2010.5 Email: openlinux21@gmail
第3章 vi/vim编辑器的使用
学习本章要达到的目标:
1. 了解关于vi的基本知识; 2. 熟悉vi的启动方法; 3.掌握使用vi进行文件录入的方法; 4.掌握vi操作的常用技巧,
:m,n s/str1/str2/g 用字符串str2替换第m行到第n行中所有出现的字符 串str1,
3.3.6 撤销与重做
u 撤销前一跳命令产生的结果, . 重做最后一条命令的操作,
3.4 启动vi编辑器
vi 参数 文件名 常用的启动参数:
-b 以二进制模式显示, -d 打开多个文件,并显示文件之间的不同之
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux中使用vim命令进行文本编辑和编程Linux是一种开放源代码的操作系统,广泛应用于服务器和嵌入式设备上。

而vim作为Linux中最常用的文本编辑器之一,具有强大的编辑功能和灵活的编程支持。

本文将介绍在Linux中如何使用vim命令进行文本编辑和编程。

一、vim的安装和启动
在大多数Linux发行版中,vim已经预装。

如果未安装,可以通过包管理器进行安装,例如在Ubuntu中可以使用以下命令进行安装:sudo apt-get install vim
安装完成后,通过在终端中输入vim命令即可启动vim编辑器。

二、vim的基本模式和操作
vim有两种基本模式:命令模式和编辑模式。

在命令模式下,可以执行各种命令;在编辑模式下,可以输入、修改文本内容。

以下是一些常用的vim命令:
1. 在命令模式下:
- i:进入插入模式,可以开始编辑文本。

- :w:保存文件。

- :q:退出vim。

- :wq:保存并退出vim。

- :q!:强制退出vim,不保存修改。

2. 在编辑模式下:
- 方向键或h/j/k/l:在文本中移动光标。

- x:删除光标所在处的字符。

- dd:删除光标所在行。

- p:粘贴最后一次删除的内容。

- u:撤销上一次操作。

三、文本编辑功能
vim不仅能够编辑普通文本,还支持各种文本编辑功能,如查找替换、复制粘贴等。

1. 查找和替换:
- 在命令模式下,输入“/要查找的内容”可以查找指定内容。

- 输入“:s/原内容/新内容/g”可以替换文本中的内容。

2. 复制和粘贴:
- 先将光标移到要复制的文本开头,按下“v”键进入可视模式,然后移动光标选中要复制的文本。

- 按下“y”键复制选中的文本。

- 将光标移动到要粘贴的位置,按下“p”键粘贴复制的文本。

四、编程支持
vim作为一款强大的编辑器,提供了丰富的编程支持。

下面介绍几
个常用的编程功能和快捷键。

1. 语法高亮:
vim支持许多编程语言的语法高亮显示,以帮助开发者更好地阅读
和编辑代码。

通过输入命令“:syntax on”即可开启语法高亮。

2. 自动缩进:
在vim中,可以通过输入命令“:set autoindent”来开启自动缩进功能。

当编写代码时,新的一行会按照上一行的缩进进行对齐。

3. 代码折叠:
在大型代码文件中,有时需要隐藏不相关的部分以便更好地浏览代码。

vim提供了代码折叠的功能,可以通过命令“:set foldmethod=syntax”来开启代码折叠。

4. 快速跳转:
vim提供了很多快捷键来加快代码编写的速度。

比如,按下“gg”可
以跳转到文件的开头,按下“G”可以跳转到文件的末尾。

五、vim的其他功能和扩展
vim还有许多其他强大的功能和扩展,如多窗口编辑、宏录制、插
件管理等。

可以通过查阅vim的官方文档或在互联网上搜索相关内容
来深入了解。

综上所述,vim作为Linux中最常用的文本编辑器之一,不仅提供
了强大的编辑功能,还支持丰富的编程特性。

通过学习和熟练使用vim,可以提高文本编辑和编程的效率,为Linux开发和运维工作带来便利。

用户可以根据自己的需求,在vim中灵活运用各种功能,以更好地进
行文本编辑和编程工作。

相关文档
最新文档