很牛的vim使用技巧1
vim基础用法

vim基础用法Vim是一款文本编辑器,具有强大的功能和灵活的配置选项。
以下是Vim的基础用法:1. 打开文件:在终端中输入`vim <文件路径>`命令,如果文件不存在,Vim将会创建一个新文件。
2. 退出:在命令模式下按下`:q`,然后回车键退出Vim。
如果有未保存的更改,可以使用`:q!`来强制退出(不保存更改)。
3. 保存文件:在命令模式下按下`:w`,然后回车键保存文件。
如果要保存文件并退出,可以使用`:wq`。
4. 插入文本:在命令模式下按下`i`,然后开始输入文本。
可以插入、删除和编辑文本。
5. 保存并退出:在命令模式下按下`ZZ`快捷键可以保存文件并退出Vim。
6. 移动光标:使用方向键或h(左)、j(下)、k(上)、l (右)来移动光标。
也可以使用`gg`跳转到文件开头,`G`跳转到文件末尾,以及数字+G跳转到特定行。
7. 删除文本:在命令模式下按下`x`来删除光标位置的字符。
可以使用`dd`删除整行文本。
可以使用数字+n+dd删除多行文本。
8. 复制和粘贴:在文本编辑模式下,先按下`y`键将光标停留的文本复制到寄存器中,然后按下`p`键将寄存器中的文本粘贴到光标后面。
9. 撤销和重做:在命令模式下按下`u`键可以撤销之前的更改。
使用`Ctrl+r`可以重做撤销的更改。
10. 搜索和替换:在命令模式下按下`/`后输入要搜索的文本并回车,Vim将会高亮显示匹配的文本。
你可以使用`n`键跳转到下一个匹配项。
使用`:%s/old/new/g`命令可以替换文件中的文本,其中old为要替换的文本,new为新的文本,g为全局替换。
11. 设定行号:在命令模式下输入`:set number`可以显示行号。
这只是Vim功能的一个简单介绍,Vim具有许多其他的高级功能和定制选项。
你可以查阅Vim的文档来了解更多信息。
vim快速注释技巧

vim快速注释技巧
技巧⼀
批量注释
ctrl+v 进⼊可视化模式,向下或向上移动光标(如果在知道⾏号的情况下直接使⽤ngg快速选中需要注释的⾏),把需要注释的⾏的开头标记起来,然后按⼤写的I(shift+i),再插⼊注释符,如"#",再按Esc,就会全部注释了
批量取消注释
ctrl+v,进⼊可视化模式,利⽤⾏号快速选中列的个数,然后按d, 就会删除注释符号(需要注释符号纵向对齐,否则可能误删,或漏删)
技巧⼆
批量注释
:起始⾏号,结束⾏号s/^/注释符/g
批量取消注释
:起始⾏号,结束⾏号s/^注释符//g
备注:批量操作后如果出现字符⾼亮显⽰可以输⼊“:nohl”进⾏关闭。
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”:在光标所在行的行首插入。
vim简单使用教程

vim简单使用教程vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。
下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。
非常不错。
——————————正文开始——————————你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。
Vim the Six Billion Dollar editorBetter, Stronger, Faster.学习vim并且其会成为你最后一个使用的文本编辑器。
没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。
我建议下面这四个步骤:1.存活2.感觉良好3.觉得更好,更强,更快4.使用VIM的超能力当你走完这篇文章,你会成为一个vim的superstar。
在开始学习以前,我需要给你一些警告:•学习vim在开始时是痛苦的。
•需要时间•需要不断地练习,就像你学习一个乐器一样。
•不要期望你能在3天内把vim练得比别的编辑器更有效率。
•事实上,你需要2周时间的苦练,而不是3天。
第一级–存活1.安装vim2.启动vim3.什么也别干!请先阅读当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。
但vim不是这样的,请按照下面的命令操作:•启动Vim后,vim在Normal模式下。
•让我们进入Insert模式,请按下键i 。
(陈皓注:你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了)•此时,你可以输入文本了,就像你用“记事本”一样。
•如果你想返回Normal模式,请按ESC键。
现在,你知道如何在Insert和Normal模式下切换了。
下面是一些命令,可以让你在Normal模式下幸存下来:•i→Insert模式,按ESC回到Normal模式.•x→删当前光标所在的一个字符。
vim编辑器的使用详解

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终端中的文本编辑器使用指南

Linux终端中的文本编辑器使用指南在Linux操作系统中,文本编辑器是一个非常重要的工具,它可以让用户编辑和处理文本文件。
Linux终端提供了多种文本编辑器供用户选择,每个编辑器都有自己的特点和用途。
本文将为您介绍几款常用的Linux终端文本编辑器,并详细讲解其使用方法和技巧。
一、VimVim是一款强大而灵活的文本编辑器,在Linux终端中得到广泛应用。
以下是Vim的基本使用指南:1. 启动Vim在终端中输入命令"vim"即可启动Vim编辑器。
2. 移动光标使用h、j、k、l分别向左、向下、向上、向右移动光标。
也可以直接使用方向键进行移动。
3. 插入和编辑文本按下"i"键切换到插入模式,即可开始编辑文本。
按下"Esc"键退出插入模式。
4. 保存和退出在命令模式下,输入":w"可以保存文件,输入":q"可以退出Vim编辑器。
若要保存并退出,可以输入":wq"。
5. 撤销和重做在命令模式下,输入"u"可以撤销前一步操作,输入"Ctrl + r"可以重做撤销的操作。
二、NanoNano是一款简单易用的文本编辑器,适合新手使用。
以下是Nano的基本使用指南:1. 启动Nano在终端中输入命令"nano"即可启动Nano编辑器。
2. 移动光标使用方向键进行光标的移动。
3. 插入和编辑文本直接开始输入即可插入和编辑文本。
4. 保存和退出按下"Ctrl + o"可以保存文件,按下"Ctrl + x"可以退出Nano编辑器。
5. 搜索和替换按下"Ctrl + w"可以进行文本的搜索,按下"Ctrl + \\"可以进行文本的替换。
三、EmacsEmacs是一款功能强大的文本编辑器,拥有丰富的功能和扩展性。
find精确查找、find处理查找结果、vim高级使用、vimdiff多文件使用
9 find精确查找格式:find [目录] [条件1]-type 类型(f文本文件、d目录、l快捷方式)1.[root@A /]# find /boot -type d2.[root@A /]# find /opt -type d3.[root@A /]# find /etc -type l4.[root@A /]# find /boot -type f5.6.[root@A /]# find /usr -type d7.[root@A /]# find /var-type d8.[root@A /]# find /sbin -type l9.[root@A /]# find /bin -type f-name "文档名称" (-iname 忽略大小写)1.[root@localhost /]# find /etc -name "passwd"2.[root@localhost /]# find /etc -name "*tab"3.[root@localhost /]# find /etc -name "*.conf"4.5.[root@localhost /]# find /root -name ".*"#查找隐藏数据6.7.[root@localhost /]# find /boot -type d |cat -n8.[root@localhost /]# find /opt -type d |wc -l9.[root@localhost /]# find /etc -type l |cat -n10.[root@localhost /]# find /boot -type f |cat -n11.[root@localhost /]# find /boot -type f |wc -l12.13.[root@localhost /]# find /etc -name "*tab"|wc -l14.[root@localhost /]# find /etc -name "*.conf"|wc -l15.[root@localhost /]# find /etc -name "*.conf"|cat -n两个条件联合使用1.[root@localhost /]# mkdir /mnt/cbd012.[root@localhost /]# mkdir /mnt/cbd023.[root@localhost /]# touch /mnt/cbd03.txt4.5.[root@localhost /]# find /mnt/-name "cbd*"6.[root@localhost /]# find /mnt/-name "cbd*"-type d7.[root@localhost /]# find /mnt/-name "cbd*"-type f8.9.[root@localhost /]# find /mnt/-name "cbd*"-o -type f #两个满足其中一个10.11.-size +或- 文件大小(k、M、G)1.[root@localhost /]# find /boot -size +300k2.[root@localhost /]# find /boot -size +10M3.[root@localhost /]# find /boot -size +1M4.5.[root@localhost /]# find /boot -size +10M -size -50M-user 用户名(按照数据的所有者)1.[root@A /]# useradd natasha #创建用户2.[root@A /]# find /home -user natasha3.[root@A /]# find /-user natasha4.5./proc:内存的数据,不占用硬盘空间6.7.[root@A /]# useradd harry #创建用户8.[root@A /]# find /home -user harry9.[root@A /]# find /-user harry-mtime 修改时间(所有的时间都是过去时间)-mtime +90 #90天之前的数据-mtime -90 #最近90天之内的数据1.2.三个月之前的数据:3.[root@A /]# find /var-mtime +904.5.最近10天之内的数据:6.[root@A /]# find /root -mtime -107.10 find高级使用处理find找到的数据,每查找的一个就传递一次find [范围] [条件] -exec 处理命令{} \;-exec额外操作的开始{} 永远表示前面find查找的结果\; 额外操作的结束1.[root@localhost /]# find /boot -size +10M2.[root@localhost /]# find /boot -size +10M -exec cp {}/mnt \;3.4.[root@localhost /]# ls /mnt5.6.7.[root@localhost /]# find /boot -size +10M -exec ls -lh {}\;两个条件联合使用1.[root@localhost /]# mkdir /root/mytab2.[root@localhost /]# find /etc -name "*tab"-type f3.4.[root@localhost /]# find /etc -name "*tab"-type f5.-exec cp {}/root/m ytab \;6.7.[root@localhost /]# ls /root/mytab案例:查找并处理文件1. 利用find查找,数据的所有者为student,并且必须是文件,把它们拷贝到/root/findfiles/ 文件夹中1.[root@localhost /]# useradd student #创建普通用户student2.[root@localhost /]# mkdir /root/findfiles3.4.[root@localhost /]# find /-user student -type f5.[root@localhost /]# find /-user student -type f -exec cp {}/root/findfiles\;6.7.[root@localhost /]# ls -A /root/findfiles/#-A显示隐藏数据11 案例:查找并处理文件11.1 问题1.利用find查找所有用户student拥有的必须是文件,把它们拷贝到/root/findfiles/文件夹中2.利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt3.利用find查找/boot/ 目录下以vm 开头且必须是文件,拷贝到/opt4.利用find查找/boot/目录下为快捷方式5.利用find查找/etc目录下,以tab作为结尾的必须是文件11.2 方案根据预设的条件递归查找对应的文件格式:find [目录] [条件1]常用条件表示:•-type 类型(f文件、d目录、l快捷方式)•-name "文档名称"•-size +|-文件大小(k、M、G)•-user 用户名•-mtime 修改时间高级使用(处理find查找的结果)•-exec 额外操作的开始•\; 表示额外操作的结束•{} 前面find命令每一个查询的结果11.3 步骤实现此案例需要按照如下步骤进行。
Linux中Vim编辑模式中的四种模式及实用技巧(可快速上手)
Linux中Vim编辑模式中的四种模式及实⽤技巧(可快速上⼿)vim⼀共有4个模式:• 正常模式 (Normal-mode)• 插⼊模式 (Insert-mode)• 命令模式 (Command-mode)• 可视模式 (Visual-mode)正常模式(从插⼊模式进⼊到正常模式实际也为对当前⽂本的命令模式)启动vim后默认处于正常模式。
不论位于什么模式,按下<Esc>键(有时需要按两下)都会进⼊正常模式。
~ 正常模式下,最后⼀⾏No file前⾯为⼀个⼩横杠 -~- No file [Modified] 3/5 60%插⼊模式(编辑模式)在正常模式中按下i, I, a, A等键,会进⼊插⼊模式。
现在只⽤记住按i键会进⾏插⼊模式。
在插⼊模式中,击键时会写⼊相应的字符。
~ 插⼊模式下,最后⼀⾏No file前⾯为⼀个⼤写字母I,表⽰insert插⼊模式,若退出插⼊模式需要按两下esc键,然后前⾯⼤写I变成⼩横杠-~I No file [Modified] 1/5 20%命令模式(末⾏模式)在正常模式中,按下:(英⽂冒号)键,会进⼊命令模式。
在命令模式中可以执⾏⼀些输⼊并执⾏⼀些vim或插件提供的指令,就像在shell⾥⼀样。
这些指令包括设置环境、⽂件操作、调⽤某个功能等等。
命令模式输⼊是在最后⼀⾏进⾏输⼊,可在插⼊模式按两下esc退出变成⼩横杠时按下:(即Ctrl+:输⼊冒号)进⼊命令模式常⽤的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
可视模式在正常模式中按下v, V, <Ctrl>+v,可以进⼊可视模式。
可视模式中的操作有点像拿⿏标进⾏操作,选择⽂本的时候有⼀种⿏标选择的即视感,有时候会很⽅便。
vim ctrl+v垂直选取产⽣ e353错误原因是/etc/vim/vimrc中map ctrl+v为其他作⽤了解决⽅法: 删除掉map<C-V>...项即可客户端putty, xshell连接linux中vim的⼩键盘问题在putty上⽤vi的时候,开NumLock时按⼩键盘上的数字键并不能输⼊数字,⽽是出现⼀个字母然后换⾏(实际上是命令模式上对应上下左右的键)。
配置及VIM编辑器使用技巧
第一章:配置及VIM编辑器使用技巧一.Windows XP 下的安装(略)二.Liunx 环境下的安装(略)三.Mysql四.创建ROR项目并启动项目配置:rails+mysql+Webrick在创建项目之前,首先我们要创建一个数据库:进入Mysql$:mysql -uroot -p123创建数据库demo_development $:create database demo_development default charset='utf8' 创建项目demo,在这里我们的项目与数据库Mysql连接,在终端下$:rails demo --database=mysqlcreatecreate app/controllerscreate app/helperscreate app/modelscreate app/views/layoutscreate config/environments.. .. .... .. ..create log/production.logcreate log/development.logcreate log/test.log进入项目$:cd demo查看生成的文件$: lsREADME app db lib public test vendorRakefile config doc log script tmp为了成功连接数据库,我们需要修改config/database.yml配置文件在Rails 里面,有三种运行环境:development开发环境.test测试环境以及production生产环境. 在默认情况下,我们使用的是development开发环境.所以我们只要做如下修改即可:development:adapter: mysqlencoding: utf8database: demo_developmentpool: 5username: rootpassword: 123socket: /tmp/mysql.sock回到终端, 输入命令$:script/server 启动项目.默认端口为3000.%script/server=> Booting WEBrick...=> Rails 2.2.2 application started on http://0.0.0.0:3000=> Ctrl-C to shutdown server; call with --help for options点击About your application’s e nvironment 链接查看配置信息效果图(1)##但有时我们会碰到这样的错误: 图2Session Error:CGI::Session::CookieStore::TamperedWithCookie in Rails/infoController#properties CGI::Session::CookieStore::TamperedWithCookie我们刷新这个页面即可解决.也可以利用-p 修改端口.script/server -p 3001*************待用Mysql Error:MissingSourceFile in Rails/infoController#propertiesno such file to load -- sqlite3。
编辑器之神vim的一些常用快捷键整理
编辑器之神vim的⼀些常⽤快捷键整理yy:复制光标所在的这⼀⾏
4yy:复制光标所在⾏开始向下的4⾏
p:粘贴
dd:剪切(删除)光标所在的这⼀⾏
4dd:剪切(删除)光标所在⾏向下的4⾏
D:从当前的光标开始向后剪切,⼀直到⾏末
d0:从当前的光标开始向前剪切,⼀直到⾏⾸
x:从光标处开始向后删除
X:从光标处开始向前删除
u:撤销
ctrl+r:反撤销
shift+4:移动到光标所在⾏⾏尾
shift+6:移动到光标所在⾏⾏⾸
← h
↓ j
↑ k
→ l
H:移动到当前屏幕最上⾯⼀⾏
M:移动到当前屏幕最中间⼀⾏
L:移动到当前屏幕最下⾯⼀⾏
ctrl+f---->下⼀页
ctrl+b---->上⼀页
20 G:快速定位到第20⾏
G:快速回到整个代码的最后⼀⾏
gg:快速回到整个代码的第⼀⾏
w:向后跳⼀个单词的长度,即跳到下⼀个单词的开始处
b:向前跳⼀个单词的长度,即跳到上⼀个单词的开始处D:从当前的光标开始剪切,⼀直到⾏末
v:选中⼀⽚代码
>>:向右移动代码
<<:向左移动代码
.:重复执⾏上⼀次的命令
{:跳到这段代码的开头
}:跳到下⼀段代码的开头
/:搜索
n:下⼀个搜索的结果
N:上⼀个搜索的结果
替换:
末⾏模式下,将当前⽂件中的所有abc替换成123
:%s/abc/123/g
末⾏模式下,将第⼀⾏直第10⾏之间的abc替换成123 1,10s/abc/123/g。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。
部分技巧在vi上也可以使用,但是现在基本上都是用vim了。
2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。
3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。
熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽。
4. 本文由本人搜集整理,转载请注明出处本文一般情况下用(里边的字母一般大小写无所谓,除非特别注明)表示按住ctrl同时按下相关字母,命令前加一个i表示在插入模式下用这个命令1. 选定文字/ 拷贝粘贴v为可视模式,可以选定多行。
选定多行之后,可以用yy或者dd等等进行拷贝和剪切。
p 是粘贴y 和d 可以直接拷贝或者剪切选定的内容yw是拷贝一个单词如果要复制整行的最简单办法就是V,y,p 就行了v是可以选定一行任意个字符的,V是行选定的,一次一整行,然后通过向下或向上移动光标而选定多行。
对于v选定的,拷贝后就是这么多,选多少就拷贝多少,而V选定的,粘贴的话会自动换到下一行命令模式下,也是块选定,不过是列块选定2. 折叠代码可以zf进行折叠, 用zo打开折叠,也可以方向键向右打开折叠,zc 关闭折叠(只要在被折叠的块中的任一个语句就行)3. 缩进代码是右缩进按v选定后按=就是自动格式化代码,自动缩进,内部的递归的缩进都做到了行左移>,该命令用于调整源码缩进格式简便快速。
4. 移动光标%是从大括号的开始移动到大括号的结束位置:后边加行号就是跳到这一行光标返回到以前的位置。
相当于光标移动的“撤销”光标返回到后来的位置。
相当于光标移动的“恢复”5. 多文件编辑/ 缓冲区命令vim下每一个打开的文件对应一个缓冲区(buffer)。
多文件编辑会有两种情形,一种是在进入vim 前所用的参数就是多个文件(这种情形称为argument list)。
另一种情形是进入vim 后另外再开其它的文件(称为buffer list)。
不过都可以统称为buffer。
5.1 打开文件vi flname1 flname2… flnameN将多个文件调入缓冲,是argument list。
:e filename这是在进入vim 后,在不离开vim 的情形下再开其它文件,只要您要编辑的档案是在目前目录,T ab 补全键还是可以使用。
是buffer list。
注意::e 或者:new 或者:split 后边可以跟目录,这样就可以在目录下慢慢找要打开的文件了5.2 缓冲区跳转:n 编辑下一个文件。
:2n 编辑下二个文件。
:N 编辑前一个文件。
注意,这种用法只能用于argument list 的情形。
:rew 回到首文件:args 查看当前编辑缓冲文件状态:e# 或Ctrl-^ 编辑前一个档案,用于两文件互相编辑时相当好用。
这种用法不管是argument list 或buffer list 档案间皆可使用。
使用Ctrl-^ 命令更便捷,但如终端类型不正确该功能将无效。
用:ls来显示缓冲区中的文件,编号后边有#的代表是前一个文件,可以通过:e#来进入,有%a的代表是当前文件,什么也没有的可以通过:bn来进入,这里的n代表文件编号。
:b文件名或编号移至该文件。
在:ls 中就会出示各文件的编号,这个编号在未离开vim 前是不会变的。
这个指令elvis 也是可以使用。
当然:e#编号也是可以的,这样的用法则是所有vi clone 都通用了。
在buffers 中,减号- 表示这个buffer 并未载入,不过,不必担心,载入相当快速的。
加号+ 表示这个buffer 已经修改过了。
:bn buffer next。
这里的n代表字母n:bl buffer last。
以上两个指令elvis 不适用。
如果您是使用vim 的GUI,那就在菜单上就会有Buffers 这个选项,可以很容易的知道及移动各buffer 间。
5.3 移除缓冲区:bd(elete) buffer 在未离开vim 前是不会移除的,可使用这个指令移除。
其实移除它干什么呢?vim是您在叫用时才会载入的,因此这些buffers 并不是像cache 一般要占内存的。
5.4 重新编辑放弃一修改过的文件,重新编辑。
(1)使用命令:q!强行退出后再vi flname重新进入。
(2)使用命令:e!强行重编辑更便捷。
这样也是会打开文件,但会放弃目前编辑文件的改变,否则如果文件已有变动,vim 预设是不让您随便离开的。
:e! 后不接什么的话,代表舍弃一切修改,重新载入编辑中文件。
5.5 其他命令:files 或:buffers 或:ls 会列出目前buffer 中的所有文件。
在elvis 中可使用:b 来叫出buffers。
:f 或Ctrl-g 显示目前编辑的文件名、是否经过修改及目前光标所在之位置。
:f 文件名改变编辑中的文件名。
(file):r 文件名在光标所在处插入一个文件的内容。
(read):35 r 文件名将文件插入至35 行之后。
gf 这是vim 的特殊打开文件的方法,会打开光标所在处的word 为名的文件,当然,这个文件要在当前目录内,否则会创建新文件。
6. 查找命令用/查找单词后,n可以跳到下一个,N则是上一个,:nohls可以取消高亮查找时,:set ignorecase”项让VIM忽略大小写,“:set noignorecase” 来关闭这项功能。
7. 修改文字cw:删除一个单词并进入插入模式,cc:删除一行并进入插入模式。
r:然后输入的字母将替换当前字母并保持命令模式,R则是不停的替换(一个挨着一个)。
0到行首,$到行尾。
8. 函数间跳转ctrl+]和ctrl+T分别是查找函数的定义和返回,好像需要ctag的支持i 跳转到光标所指标识符的定义行,是打开一个新的小窗口显示,记住要加个i,最好是找自己项目下的文件,否则找库函数的话还不如man.大写K 看光标所指标识符的man 帮助页9. 窗口命令= ctrl+w:split 文件名同时在一个页面显示多个文件的内容,类似多窗口,用切换当前窗口f 切分显示光标在处的文件名,VIM 会在path 中搜索该文件名,比如常用它打开#include 语句中的文件_ 当同时打开几个文件时,按_ 使当前窗口最大化用Ctrl-W命令指定光标移动:Ctrl-W + 扩大窗口Ctrl-W - 缩小窗口Ctrl-W h 移动到窗口左边Ctrl-W j 移动到窗口下边Ctrl-W k 移动到窗口上边Ctrl-W l 移动到窗口右边等于是按下后,松开键盘,再按下一个命令就可以了.如果要关闭分割窗口可以用:close,剩下只有一个窗口的话就不能关了。
多窗口是split,像用e打开多个文件是将文件放在缓冲区中。
10. 自动完成i 向上搜索,补全一个词i 向下搜索,补全一个词i 补全一行。
比如你写过一行for (int i = 0; i 即可。
如果补全出来的不是你想要的那一行,你可以按或选择上一个或下一个匹配行i 在文件系统中搜索,补全一个文件名如果按或补全一个词,在当前文件中没有找到匹配,VIM 将搜索#include 语句中的文件,而文件的位置将在path 中搜索。
i 把上一行对应列的字符抄下来i 把下一行对应列的字符抄上来,这两个都可以一直按下去,到了行尾自己会停的.11. 注释整块内容注释块的方法:选定要注释掉的行 I // EscI之后输入的东西就是插入到选定的行前边的,直至Esc.要去掉注释的办法:选定注释符//,然后d列块选定后I是在前边都插入,A是在后边都插入是按列块模式的选定,是行选定,v是普通选定12. 其他命令u可以撤销上一步操作, ctrl+r可以恢复i命令执行一个普通模式的命令,执行完毕后回到插入模式,不用多次Esci后续字符输入特殊的ASCII 字符或键。
. 在光标当前位置处重复上一次操作:!命令行执行一条外部命令************************************************************** *********************我是vim 粉丝, 用了许久, 有一些自己的感受, 又到处挖到一些别人的技巧. 感觉对vim 粉丝比较有用, 就把它记在这儿. 希望借此文套出大家自己的巧活, 就正应了抛砖引玉的古话了.先稍为介绍一下vim. vi 是unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有. vi 有各种变种, 在不同的机器上常用不同的变种软件. 其中vim 比较好用也用得比较广泛. vim 是Vi IMproved 的缩写, 表示更好的vi. 我个人觉得它是非常好的编辑器(为了避免Emacs 粉丝挑眼, 就不说最好了). 没用过的也建议试试看, 当然vim 对编写文本文件很方便好用, 比如编写程序, html文档等等, 却不能用来编写word 文档.关于vim 的安装, 基本使用方法等网络上能搜出许多, 就不在这里罗嗦了, 要是对vim 有兴趣, 那就看看这里(中文文档):/本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很舒服.说明:以下的例子中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.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, 会按照你的颜色配置来转。