Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4255132
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-01-16 22:22:20

这里包含在shell下执行vi,以及vi中关于文件操作的内容


打开一个文件file 进行编辑等操作
vi file

打开文件,并将光标至于第n行首
vi +n filename
这里输入的都是shell下进行的,是shell命令,

打开文件,并将光标置于第一个与pattern匹配的串处
vi +/pattern filename
这里输入的都是shell下进行的,是shell命令

在上次征用vi编辑器时,发生系统崩溃,恢复filename
vi -r filename

以只读方式打开文件
vi -R file
或者 view file
这里输入的都是shell命令,其中,view是unix 的命令,有的linux有 在ubuntu下有view这个命令,亲测

vi下临时切换到shell执行shell命令
输入 !command
注意:这里command是命令名称 如:ls
比如:1. 输入 ESC
      2. 输入 :
      3. 输入 !ls 查看当前目录下的内容

查看当前编辑的文件和行号
或输入 ctrl+g
或输入 :args 查看当前编辑缓冲文件状态或名称

保存
输入:w
若输入 :w file (效果和另存为文件file一样)

载入(创建)一个新文件(file)
输入:e file
或输入:n file
或输入:hide e filename
这里,类似与新建文件或者新打开一个文件,当前文件的窗口将会被待编辑的文件所占用,如果当前文件没有保存会提示的。实质上是隐藏当前文件到buffwe缓存,打开另一个文件进行编辑,具体见缓存部分

在新窗口载入(创建)一个文件(file)
输入:vnew file
或输入:vsplit fle
或输入:split file
这将新开一个垂直的分割窗口,并在新开的窗口中载入相应的文件

将当前文件以及改动保存到另外文件中
输入: w filename
这里filename是另外的文件名,执行之后仍然停留在当前文件中,只是目录中多了一个filename文件,即另存为

只保存文章的某个部分到另外文件
输入:#,#w test
这里的,#,#就是要求你记住的行号(最小行号,最大行号),而test就是选定的文件名

向当前光标中插入另外的文件的内容
输入: r filename
这里,filename是要插入的文件名,r前面可以制定一个行号,表示吧内容插在这个行号houmian
如:3r filename


在buffer缓冲内操作文件相关
列出当前打开的文件,以及编号
输入:buffers
或输入:ls
假设我们打开一个文件,之后用n来切换到另一个文件红,后者用tabnew打开新文件,那么原来的文件以及现在的文件都会在buffers中,并且yy等命令复制的原来的文件的内容还能用。列表前面的前缀%表示当前文件,#表示可以用 ctrl 的呢个切换的可用buffer 其他的可以查看:help ls 或者 help buffers

切换成第n个缓冲
输入 n ctrl^
或输入 :buffer n
这里,注意第一种方法不用输入:两个buffer文件之间可用yy,pp

新开一个窗口,载入第n个缓冲区的文件
输入:sbuffer n
窗口默认是水平

切换到下一个文件
输入:bn

切换到上一个文件
输入:bp

关闭当前文件
输入:bw
这样会关闭当前文件进入下一个buffer的文件,并且当前文件也会从buffer列表中删除

调至下一个文件
输入:n
当然这里打开文件的方法应该是$vi file1 file2 file3 才行。如果用vi file1 之后用 :n file2 这样不行

回到当前编辑的文件
输入:e#
或输入ctrl^
例如:运行了vi a b c 当前编辑文件为a :n跳至b,再:n跳至c e#回到b,想回到a的话用:ea

退出:
输入 :q

保存退出
输入:wq
或者输入:x
或输入:ZZ

强制退出
输入:q!(可能未保存)

退出所有
输入:qa
这里如果打开多个窗口或者文件的时候,使用这个命令可以实现一次性退出

查看当前编辑缓冲文件状态(文件名)
输入:args

阅读(825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~