/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行
恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:
:recover 恢复文件
也可以在启动 vi 时利用 -r 选项。
1.5 选项设置
为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。基本语法为:
:set option 设置选项 option
常见的功能选项包括:
autoindent 设置该选项,则正文自动缩进
ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别
number 设置该选项,则显示正文行号
ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8
mk 将选项保存在当前目录的 .exrc 文件中
ctrl +o 退回原处
ctrl+T 回到上一个访问的函数处
gd 转到当前光标所指的局部变量的定义处。
* 转到当前光标所指的单词的下一次出现的地方
#转到当前光标所指的单词的上一次出现的地方
多窗口操作:
Ctrl+w + [s/w/t/b/c/q/r/i/]
q:退出窗口
r 循环窗口
t 顶部窗口
b 底部窗口
w 下一个窗口,用于在窗口之间进行切换
c 关闭窗口
s 再分屏
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
下我们常常要进行字符串的查找替换,有在vim编辑器里面进行的,也有在shell下进行的,这样的事情常遇到,但是每次都会感到有些概念模糊,尤其对类似awk、sed、grep、find等命令的具体参数使用问题上老是糊涂,下面收集几个常用的方法,实在不能理解就死记算了!
1、在vi中使用的查找替换方法
利用 :s 命令可以实现字符串的替换。具体的用法包括:
: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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
2、在shell中使用find结合grep进行文件的替换
# find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \;
上面命令可以在当前目录下(包括子目录)查找包含str1的文件,自动替换成str2,并且生成源文件的bak文件
更多方法正在不断收集更新中。。。
命令模式进入可视模式 按v或是ctrl-v键 注意v和ctrl-v是不同的 一个是普通的行选择 一个是块选择
更进一步的编辑 剪切复制和粘贴还有redo undo(取消和重做)
在windows下 你可以像其它编辑器那样使用ctrl-c ctrl-v ctrl-x,并且一样可以使用鼠标选择
在linux下 如果运行了gpm 那一样可以使用鼠标选中一块文字
然后在vim下把输入的光标停在要插入的地方(注意在普通模式下 才能插入 )
点右键 (如果是在x下 那是点中键 )进行粘贴
同时这可以从其它地方选择 而不一定是在vim内
如果要选择的文字很长 或是滚轮不好 总选不中
那你可以用可视模式
可视模式就是按v键进入
进入了后 移动光标 或者按 j h k l 方向键,选完要复制或是要剪切的内容 然后
如果是想复制 那按y
如果是想剪切 那按x
当按下这些键后 自动回到命令模式
这时移动光标到你想粘贴的位置 按p
注意 如果你按了x 但是没有粘贴 然后复制了一行 那前一行就会自动清掉
也就是 删除的话也是按x
redo和undo
undo(取消操作) 在命令模式下按u
redo(取消刚才的取消 ) 在命令模式下按ctrl-R
命令总结
在命令或是可视模式下:
x 剪切/删除
y 复制
命令模式下:
p 粘贴
u 取消(可以无穷次 当然关闭了编辑器再打开时就不能了)
ctrl-r 重做(也可以无穷次)
:w 保存文件 可以指定文件名 如:w test.txt表示另存为test.txt 如果文件只读 那使用
:w! 强制覆盖
阅读(3651) | 评论(0) | 转发(0) |