龙 2009年12月30日 星期三 22:06 | 1715次浏览 | 0条评论
多文件编辑 ----------------------------------------------
//打开一个文件 :e filename 或者 :edit filename
//打开多个文件 :e a.txt b.txt c.txt , 用命令 :next 编辑下一个文件, :previous 编辑上一个文件, 到第一个文件 :first , 到最后一个文件 :last
//查看列表中打开了哪些文件 :args, 往列表中添加新文件 :args a.txt 或者添加全部 txt 文件 :args *.txt
//快速切换文件 CTRL+^(6)
//如果你要从一个文件中复制出好几块独立的文本到另一个文件中去,可以使用寄存器, 把一个句子复制到名为f的寄存器中(f 意为first) "fyas( " 是寄存器命令, f 是寄存器名,y 是命令复制 as 表示 a sentence )
//向文件中追加内容 :w >> filname
//只读方式打开文件 vim -R file , 强制保存 :w! filename , 强制不可保存下打开文件 vim -M file
//将别的文件添加进来
用":read {filename}" 命令. 这样被读入文件的内容就被放在当前行的后面
":read"命令还可接受一个行范围. 被读入的文件被放在这个范围的 最后一行上. 所以":$r patch"将会把文件"patch"的内容追加到当前文 件的最后. 如果你要把文件放在第一行的上面呢? 答案是特殊行号0
//改变大小写
全部变为大写. "gU"命令可担此任 , "gu"命令反"gU"之道而行之
全局标志
//以大写字母命名的标记. 它们是全局标记, 它们可以用在任何文件中比如假设我们正编辑"foo.txt". 到文件的半中间("50%")处设置一个名为F的标记(F意为foo) 50%mF
//生成备份 :set backup , 默认生成的备份文件名将是原文件名后面附加一个"~" , 重新指定备份后缀为".bak" :set backupext=.bak
//替换
对一个指定范围的区域执行替换操作. 它的通用形式如下:
:[range]substitute/from/to/[flags]
一般使用 s/from/to/g
在这里使用正则表达式吧
flags 的意义:
c(确认)标志 在执行每个替换前要求用户确认
g标志 当前行内符合的位置都执行替换操作( 替换命令一般只在一行执行一次 )
"%"指定该命令将作用于所有行上
分隔窗口 --------------------------------------------------
//打开一个新窗口 :split , 关闭当前窗口 :close , 打开纵向窗口 :vsplit , 关闭除当前窗口外其他窗口 :only , 光闭全部窗口 :qall , 保存全部窗口中的文件 :wall
//为每个窗口打开一个文件 vim -o 1.txt 2.txt 3.txt , 纵向版 vim -O 1.txt 2.txt 3.txt (横向是小写o 纵向是大写O)
//在新窗口中新建文件 :new :vnew(纵向新窗口)
//CTRL-W w命令可以切换当前活动窗口, CTRL-W CTRL-W 功能相同
//为另一个文件分隔出一个窗口 :splic filename , 打开了一个高度为3行的新窗口并在其中编辑名为alpha.c的文件 :3split filename
// 增加窗口高度 CTRL-W + 减小 CTRL-W - , "4 CTRL-W +"将使当前窗口增加4行高度
改变窗口宽度 CTRL-W < CTRL-W > ,
切换窗口
到左边的窗口 CTRL-W h
到下面的窗口 CTRL-W j
到上面的窗口 CTRL-W k
到右边的窗口 CTRL-W l
到顶部窗口 CTRL-W t
到底部窗口 CTRL-W b
移动窗口(注意后面的要大写)
CTRL-W H
CTRL-W J
CTRL-W K
CTRL-W L
对比文件操作
//查看文件不同 vimdiff 1.txt 2.txt , 打开折叠行 zo ,折起折叠行 zc
//在编辑是对比文件 :vertical diffsplit 2.txt ( vertical 是纵向打开窗口的命令)
//跳到不同处 ]c [c
//刷新对比文件 :diffupdate
//对比时将新增行复制到缺少行的文件 光标移动到那一行,按下 dp , 或者使用 do 当前文件将与对比文件改成同样
标签页打开文件
// :tabedit filename , 新建当前文件标签页 :tab split , 转换标签 gt , 关闭当前标签页 :tab close
// 命令 的细节 --------------------------------------------------------------------------
//命令作用范围
对于":substitute"命令和很多其它的":"命令, 可以指使它们作用于
一些行上, 这叫命令的作用范围. 作用范围的最简单形式是两个以数字表示的行号. 如下:
:1,5s/this/that/g 1 至 5 行执行命令
:54s/President/Fool/ 第 54 行执行命令
:.,.+4s/people/People/ 当前行,到往下第4行
要使它们只作用于当前行上, 可以在命令前放一个"." , "$"用于代表最后一行
使用标志可以免于上面的行号计算: 在某处作上标记, 然后以此标记来指定作用范围
作用范围'<,'>代表你在Visual模式下选定的文本所在的范围
//全局命令 :global
":global"命令是Vim最强大的功能之一. 它允许你找到符合某个匹配模式的行然后将命令作用其上. 下面是其一般形式:
:[range]global/{pattern}/{command}
乍一看它与":substitute"命令很像. 但是, 这里执行的是由{command}指定的命令
// 命令记录
命令记录分三个步骤1
1. 使用"q{register}"命令开始, 后续的动作将被记录进名为{register}的
寄存器中. 给出的寄存器名字必需是a到z之间的一个字母2
2 执行你要执行的操作3 .
3. 按下q以结束对命令的记录(注意仅仅是q一个字符, 不要键入多
余的字符).
现在你可以通过"@{recording}"命令来执行刚刚记录下来的记录宏了.
下次重复执行只需再下"@@"即可
要向寄存器追加内容而不是覆盖它, 使用它的大写形式即可
Zeuux © 2024
京ICP备05028076号
暂时没有评论