vim实验总结
- 格式:docx
- 大小:3.82 KB
- 文档页数:3
vim命令学习总结第一讲小结:1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)2. 欲进入vim编辑器(从命令行提示符),请输入∶vim 文件名<回车>3. 欲退出vim编辑器,请输入以下命令放弃所有修改∶<ESC> :q! <回车>或者输入以下命令保存所有修改∶<ESC> :wq <回车>4. 在正常模式下删除光标所在位置的字符,请按∶ x5. 在正常模式下要在光标所在位置开始插入文本,请按∶i 输入必要文本<ESC>特别提示∶按下<ESC> 键会带您回到正常模式或者取消一个不期望或者部分完成的命令。
第二讲小结:1. 欲从当前光标删除至单字/单词末尾,请输入∶dw2. 欲从当前光标删除至当前行末尾,请输入∶d$3. 欲删除整行,请输入∶dd4. 在正常模式下一个命令的格式是∶[number] command object 或者command [number] object其意是∶number - 代表的是命令执行的次数command - 代表要做的事情,比如d 代表删除object - 代表要操作的对象,比如w 代表单字/单词,$ 代表到行末等等。
$ (to the end of line), etc.5. 欲撤消以前的操作,请输入∶u (小写的u)欲撤消在一行中所做的改动,请输入∶U (大写的U)欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R第三讲小结:1. 要重新置入已经删除的文本内容,请输入小写字母p。
该操作可以将已删除的文本内容置于光标之后。
如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的r 和要替换掉原位置字符的新字符即可。
3. 更改类命令允许您改变指定的对象,从当前光标所在位置直到对象的末尾。
vim编辑器心得体会作为一名使用者长期使用vim编辑器的用户,我想分享一些我对这个强大文本编辑工具的心得体会。
首先,vim是一个高度可定制的编辑器。
在初次接触vim时,我发现它被一些人形容为“令人无法理解的编辑器”。
事实上,vim的学习曲线确实相对陡峭,但一旦掌握了基本的操作和命令,它会成为你的得力助手。
通过简单的配置,我个人可以根据我自己的需求来个性化定制vim,使其更符合我的编辑风格和工作习惯。
其次,vim拥有丰富的命令和功能。
通过vim的命令模式,我可以快速进行文本的编辑和操作。
例如,使用:h[elp]命令可以查看vim的帮助文档,其中包含了众多的功能和命令的详细说明。
使用:find命令可以快速搜索指定的文本,而使用:substitute命令可以实现文本的替换。
此外,vim还支持多窗口布局、语法高亮和文本折叠等高级功能,这些功能大大提高了我的编辑效率和舒适度。
再次,vim支持大部分操作的快捷键。
通过合理利用vim的快捷键,我可以更加迅速地进行编辑操作。
例如,使用i进入插入模式,在此模式下可以编辑文本;使用ESC键回到命令模式,可以执行各种命令;使用:wq保存并退出文件等等。
这些快捷键的使用不仅可以减少移动手指的次数,也能提高编辑的流畅性和效率。
此外,vim具有极高的可扩展性。
通过使用各种插件和脚本,我可以进一步增加vim的功能和扩展它的能力。
例如,我可以安装AutoComplete插件,实现自动补全功能;我可以安装vim-airline插件,美化vim的界面;我还可以使用NERDTree插件来浏览文件系统。
这些插件的使用能够帮助我更好地管理和组织我的编辑工作,使vim变得更加强大和灵活。
最后,我想说的是,vim是一个需要耐心和实践的编辑器。
初次接触vim时,我可能会感到困惑和不知所措,但只要持之以恒地去使用和学习,掌握vim的技巧和技巧是完全可能的。
通过不断地练习和使用,我逐渐熟悉了vim的各种命令和操作,发现了它的便利和高效。
实验报告模板Clear之后2.浏览文件系统:(1)运行pwd命令,确定当前工作目录。
(2)运行ls –l命令,理解各字段含义。
第一部分“-rw-r--r--”表示该文件的权限,即所有者权限为读和写,组用户和其他用户的权限为只读。
第二部分“l”表示该文件是符号链接,第三第四部分所有者和所有者所在的用户组,第五部分的数字表示文件的大小(以字节为单位),剩下的依次是文件创建月日时间和文件名。
(3)运行ls –ai命令,理解各字段含义。
列出的是全部i节点信息(4)使用cd命令,将工作目录改到根(/)上。
运行ls –l命令,了解各目录的作用。
/bin:存放着使用者最经常使用的命令。
如:ls等/boot:存放的是启动Linux时使用的一些核心文件。
/dev:是device的缩写.这个目录下是所有Linux的外部设备例如:/dev/hda代表第一个物理IDE硬盘。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
进入后可以看到很多配置文件/home:用户主目录,比如说有个用户叫aa,那他的主目录就是/home/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。
几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。
/mnt:这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。
/proc:存放和进程有关的信息。
这个目录是一个虚拟的目录,它是系统内存的映射,这个目录的内容不在硬盘上而是在内存里/root:系统管理员,也叫超级权限者的用户主目录/sbin:s就是Super User的意思,也就是说这里存放的是一些系统管理员使用的系统管理程序/tmp:这个目录不用说,一定是用来存放一些临时文件的地方了/usr/X11R6:存放X-Windows的目录/usr/bin:存放着许多应用程序./usr/sbin:给超级用户使用的一些管理程序就放在这./usr/include:Linux下开发和编译应用程序需要的头文件在这里找./usr/local:这是提供给一般用户的/usr目录,在这安装软件最适合/var:通常用来存放一些变化中的东西/var/log:存放系统日志/var/spool:存放一些邮件、新闻、打印队列等(5)直接使用cd,回到哪里了?用pwd验证。
Vi 文本编辑器1.实验目的1.了解vi文本编辑器的原理和操作。
2.了解vi文本编辑器的相关命令。
2.实验原理和实验设备1.Linux操作系统3.实验步骤1.什么是vi文本编辑器?Vi是一个全屏幕文本编辑器优点:1.具有文本编辑所需的所有功能2.适用于各种版本的Unix/Linux3.适用于各种类型的终端4.使用灵活快捷缺点:1.界面不太好看2.按键命令太多2. 如何调用vi在系统提示符后输入vi和想要编辑(或建立)的文件名(如:vi [path]filename),便可进入vi。
如果只输入vi,而不带有文件名,也可以进入vi。
然后先创建文件的内容,在退出vi时,只需在退出命令后输入文件名即可。
进入vi之后,首先进入的就是编辑模式,进入编辑模式后vi等待编辑命令输入而不是文本输入,也就是说,这时输入的字母都将作为编辑命令来解释。
进入编辑模式后光标停在屏幕的第一行首位上(用_表示),其余各行的行首均有一个“~”符号,表示该行为空行。
最后一行是状态行,显示出当前正在编辑的文件名及其状态。
如果是[New File],则表示该文件是一个新建的文件。
如果输入vi带有文件名后,文件已在系统中存在的话,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名,行数和字符数。
在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入插入模式。
在插入模式下,用户输入的任何字符都被vi当作文件内容保存起来,并将其显示在屏幕上。
在文本输入过程中,若想回到命令模式,按ESC键即可。
在编辑模式下,用户按“:”键即可进入命令模式,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。
多数文件管理命令都是在此模式下执行的。
末行命令执行完成后,vi自动回到编辑模式。
如图 3.1所示。
若在命令模式下输入命令过程中改变了主意,可用退格键(backspace)将输入的命令全部删除之后,再按一下退格键,即可使vi回到编辑模式。
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, 会按照你的颜⾊配置来转。
vi编辑器,实验报告linux实验报告vi编辑器的使用一、实验目的学习使用vi编辑器建立、编辑、显示及加工处理文本二、实验内容1.进入和退出vi2.利用文本插入方式建立一个文件3.在新建的文本文件上移动光标位置4.对文件执行删除、复原、修改、替换等操作三、主要的实验步骤(1)vim简介系统管理员的重要工作就是修改与设定某些重要软件的配置文件,因此至少得要学会一种以上的命令界面文本编辑器。
在所有的Linux distributions 上都会有的一套文字编辑器就是vi,而且很多软件默认的也是使用vi 为他们编辑接口。
vim 是高级版本的vi ,vim 不但可以用不同颜色显示文字内容,还能够进行诸如shell script, C program 等程序的编辑功能。
(2)vi的使用基本上vi 共分为三种模式,分别是“一般模式”、“编辑模式”和“命令模式”。
这三种模式的作用分别是:一般模式:以vi 打开一个文档就直接进入一般模式(这是默认的模式)。
在这个模式中,你可以使用“上下左右”键来移动光标,可以使用“删除字符”或“删除整行”来处理文档内容,也可以使用“复制、粘贴”来处理文件数据。
编辑模式:在一般模式中可以进行删除、复制、粘贴等操作,但是却无法编辑文件内容!要按下“i, I, o, O, a, A, r, R”等任何一个字母后才会进入编辑模式。
通常在Linux 中,按下这些按键时,在屏幕的左下方会出现“INSERT或REPLACE”字样,此时才可以进行编辑。
而如果要回到一般模式时,则必须要按下“Esc”这个按键即可退出编辑模式。
? 命令模式:在一般模式当中,输入: / ? 三个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中,可以提供查找数据的操作。
读取、保存、大量替换字符、离开vi 、显示行号等的操作是在此模式中完成的!(3)具体的操作步骤如下1、进入vi2、建立一个文件,如file.c 进入插入模式,输入一个C语言程序的各行内容,故意制造几处错误,最后,将文件存盘,回到shell状态下3、运行gcc -o file file.c,编译该文件,会发现错误的提示,理解其含义4、重新进入vi,对该文件进行修改,然后存盘,退出vi,重新编译该文件,如果编译通过了,可以使用./file运行该程序5、运行man date file10 ,然后vi file10 ;使用x ,dd等命令删除某些文本行x 一个字符;#x 删除几个字符,#表示数字,比如3x;dw 删除一个单词;#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词;dd 删除一行;#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;d$ 删除光标到行尾的内容;J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;6、使用u命令复原此前的情况按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改;如果您想撤消多个以前的修改或删除操作,请按多按几次u。
ν三种状态Command:任何输入都会作为编辑命令,而不会出现在屏幕上,任何输入都引起立即反映Insert:任何输入的数据都置于编辑寄存器,按ESC,可跳回command方式Escape:以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。
ν离开vi:q!离开vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入磁盘中,并离开vi。
:x同wq。
(注意—— :X 是文件加密,一定要与:x存盘退出相区别)ν进入输入模式a (append) 由游标之后加入资料。
A由该行之末加入资料。
i (insert) 由游标之前加入资料。
I 由该行之首加入资料。
o (open) 新增一行於该行之下供输入资料之用。
O新增一行於该行之上供输入资料之用。
ν删除与修改x删除游标所在该字元。
X删除游标所在之前一字元。
r用接於此指令之后的字元取代(replace)游标所在字元。
如:ra将游标所在字元以a 取代之。
R进入取代状态,直到《ESC》为止。
s 删除游标所在之字元,并进入输入模式直到《ESC》。
S删除游标所在之该行资料,并进入输入模式直到《ESC》。
ν光标的移动m<a-z> 设置书签<a-z>…<a-z> 移至书签<a-z>处0移至该行之首$移至该行之末。
e 移动到下个字的最後一个字母w移动到下个字的第一个字母。
b移动到上个字的第一个字母。
^ 移至该行的第一个字元处。
H移至视窗的第一行。
M 移至视窗的中间那行。
L 移至视窗的最后一行。
G移至该文件的最后一行。
+ 移至下一列的第一个字元处。
-移至上一列的第一个字元处。
:n 移至该文件的第n 列。
n+移至游标所在位置之后的第n 列。
n-移至游标所在位置之前的第n 列。
<Ctrl><g> 显示该行之行号、文件名称、文件中最末行之行号、游标所在行号占总行号之百分比。
(Vim)光标移动基本用法小解:(这只要组合上边的功能就可以明白了,不用再一一讲解了吧!)ge b w e← ← ---→ --→This is-a line, with special/separated/words (and some more).←- ←-- -----------------→ ---→GE B W Eν视窗的移动<Ctrl><f> 视窗往下卷一页。
1,简单替换表达式去掉所有的行尾空格: %s/\s\+$//去掉所有的空白行:%s/\(\s*\n\)\+/\r/去掉所有的"//"注释:%s!\s*//.*!!去掉所有的"/*...*/"注释:%s!\s*/ \*\_.\{-}\*/\s*! !g删除DOS方式的回车^M :%s/r//g:%s= *$== 删除行尾空白::%s/^(.*)n1/1$/ 删除重复行::%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf::%s/<!--_.{-}-->// 又是删除多行注释(咦?为什么要说「又」呢?):g/s* ^ $/d 删除所有空行:这个好用有没有人用过还有其他的方法吗?:g!/^dd/d 删除不含字符串'dd'的行:v/^dd/d 同上(译释:v == g!,就是不匹配!):g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行:v/./.,/./-1join 压缩空行:g/^$/,/./-j 压缩空行2,简单删除命令ndw 或ndW 删除光标处开始及其后的n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后n-1 行。
x 或X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作J 把下一行合并到当前行尾V 选择一行^V 按下^V后即可进行矩形的选择了aw 选择单词iw 内部单词(无空格)as 选择句子is 选择句子(无空格)ap 选择段落ip 选择段落(无空格)D 删除到行尾x,y 删除与复制包含高亮区dl 删除当前字符(与x命令功能相同)d0 删除到某一行的开始位置d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)dw 删除到某个单词的结尾位置d3w 删除到第三个单词的结尾位置db 删除到某个单词的开始位置dW 删除到某个以空格作为分隔符的单词的结尾位置dB 删除到某个以空格作为分隔符的单词的开始位置d7B 删除到前面7个以空格作为分隔符的单词的开始位置d)删除到某个语句的结尾位置d4)删除到第四个语句的结尾位置d(删除到某个语句的开始位置d)删除到某个段落的结尾位置d{ 删除到某个段落的开始位置d7{ 删除到当前段落起始位置之前的第7个段落位置dd 删除当前行d/text 删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容dtc 删除当前行直到下一个字符“c”所出现位置之间的内容D 删除到某一行的结尾d$ 删除到某一行的结尾5dd 删除从当前行所开始的5行内容dL 删除直到屏幕上最后一行的内容dH 删除直到屏幕上第一行的内容dG 删除直到工作缓存区结尾的内容d1G 删除直到工作缓存区开始的内容:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g ,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
vim实验总结
一、vim简介
vim是一款常用的文本编辑器,被广泛应用于各种操作系统中,特别是在Unix和Linux系统中。
它具有强大的功能和灵活的扩展性,可以通过配置文件进行个性化定制,使得用户能够高效地编辑文本文件。
二、vim的基本操作
1. 进入vim编辑模式:在终端中输入`vim`命令,即可进入vim编辑器。
同时,可以通过`vim 文件名`的方式直接打开指定文件。
2. 基本的光标移动:使用h、j、k、l键进行左、下、上、右移动光标。
3. 编辑文本:在普通模式下按下i键,即可进入插入模式,此时可以对文本进行编辑。
按下ESC键可退出插入模式,返回普通模式。
4. 保存和退出:在普通模式下按下:w可以保存文件,按下:q可以退出vim编辑器。
若要保存并退出,可以使用:wq命令。
三、vim的高级操作
1. 复制、粘贴和剪切:在普通模式下按下yy可以复制当前行,p可以将复制的内容粘贴到光标后。
按下dd可以剪切当前行,P可以将剪切的内容粘贴到光标前。
2. 撤销和重做:按下u可以撤销上一次的操作,按下Ctrl+r可以重
做被撤销的操作。
3. 搜索和替换:在普通模式下按下/可以进行向下搜索,按下?可以进行向上搜索。
按下:n可以进行下一个匹配项的查找。
按下:%s/old/new/g可以替换全文中的old为new。
4. 分屏和标签页:按下Ctrl+w+v可以进行垂直分屏,Ctrl+w+s 可以进行水平分屏。
按下:tabnew可以打开新的标签页,Ctrl+w+方向键可以在标签页之间切换。
5. 自动补全和代码折叠:vim支持自动补全功能,可以通过配置文件启用。
同时,vim还支持代码折叠功能,可以通过设置折叠方法实现对代码段的折叠显示。
四、vim的优化建议
1. 使用配置文件:vim提供了一个配置文件.vimrc,可以通过在该文件中设置各种参数和快捷键来个性化定制vim编辑器。
2. 使用插件:vim有丰富的插件生态系统,可以通过安装插件来扩展vim的功能,例如代码高亮、文件浏览、自动补全等。
3. 使用快捷键:vim有很多内置的快捷键,熟练掌握这些快捷键可以提高编辑效率。
可以通过查看vim的帮助文档来了解这些快捷键的使用方法。
4. 了解vim的高级功能:vim有很多高级功能,如宏录制、多文件编辑、自动命令等,深入了解这些功能可以更好地发挥vim的威力。
五、总结
通过本次实验和个人经验,我对vim编辑器的使用进行了总结和归纳。
vim具有强大的功能和灵活的扩展性,能够帮助用户高效地编辑文本文件。
在使用vim时,熟练掌握基本操作和快捷键是必要的,同时了解vim的高级功能和优化建议可以进一步提高编辑效率。
希望这篇文章能对初学者理解和使用vim编辑器提供一些帮助。