1)命令

gf  ,可以从光标指定的文件位置打开对应文件

:bd回来

2)http://www.cnblogs.com/wangkangluo1/archive/2012/04/12/2444952.html

键盘移动 (Move)

一切都从键盘的移动
k -> 上 up
j -> 下 down
h -> 左 left
l -> 右 right
z -> 重画屏幕,当前光标变成屏幕的第一行 (redraw current line at top of window)
CTRL-f -> 跳到下一页 (page down)
CTRL-b -> 跳到上一页 (page up)

3)http://blog.chinaunix.net/uid-23381466-id-93905.html

1、多文件查找
1.1、grep
       直接在vim中输入:grep abc * 这是直接调用unix下的grep命令
1.2、vimgrep
       基本用法就是
       :vimgrep /匹配模式/[g][j] 要搜索的文件/范围
       :vim[grep][!] /{pattern}/[g][j] {file} ...
       g 和 j 是两个可选的标志位,g表示是否把每一行的多个匹配结果都加入。j表示是否搜索完后定位到第一个匹配位置。
       要搜索的文件 可以是具体的文件路径,也可以是带通配符的路径比如 *.as **/*.as ,**表示递归所有子目录。 要搜索的文件和或搜索范围都可 以写多个,用空格分开。

例子:
:vimgrep /\/ **/*.as 搜索当前目录以及所有子目录内as文件中的 "flash"
:vimgrep /an error/ *.c 就是在所有的.c文件中搜索an error。
:vimgrep/an error/* 意思是查找当前目录下的文件中的an error,不包括子目录

1.3、定位
       输入上述的命令后,可以像输入:make命令,那样定位匹配到的文件位置
       :cnext (:cn)           下一个匹配位置
       :cprevious (:cp)     上一个匹配位置
       :cwindow (:cw)     quickfix窗口,可以选择匹配的文件位置
       :cl(:clist)                查看所有匹配的位置

2、多文件替换(arg)
a、加入要处理的文件  :args *.txt
b、输入对上述文件的动作  :argdo %s/hate/love/gc | update  (这里将hate替换成love,update表示要写入到文件中,否则只作替换而不写入)

4)http://www.vimer.cn/archives/218.html/comment-page-1

这个网站似乎不错

---其他网站---

Vim中也可以像普通ide那样的在多个文件中查找的功能,用的是:vimgrep这条命令,格式如::vimgrep /AAA/ **/*.* 。执行这条命令后,可以通过:cw命令打开匹配的窗口进行查询结果的查看。
另外,vim还可以通过args命令对多个文件进行批量操作。可以参考下面这篇文章:

Vim(gvim)中怎么实现多文件的查找和替换呢?当时确实一直没有考虑过这个问题,因为一直在linux下都有grep,sed这样强力的工具,并不需要vim来实现这样的操作,但是也有很多朋友在windows下也使用gvim来进行编辑,那么就很有必要研究一番了。

第一,多文件查找

vimgrep是vim自带的一个工具,类似于grep的用法就可以实现。比如要在当前目录查找word,使用如下:

:vimgrep word *
1
:vimgrep word *

如果想要递归查找所有下级目录里面,那么就用

:vimgrep word **
1
:vimgrep word **

另外,如果想要在使用是快捷查找当前光标下的字母,则只需要在vimrc中添加如下代码:

"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " . w . " *"
endfunction
1
2
3
4
5
6
"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " . w . " *"
endfunction

通过vimgrep查找到的结果会生成到quickfix中,如下图:

第二,多文件替换

实际上只要如下两个命令即可(假设要将当前目录下所有扩展名为.txt/.cpp的文件中的hate替换成love):

:args *.txt *.cpp
:argdo %s/hate/love/gc | update
1
2
:args *.txt *.cpp
:argdo %s/hate/love/gc | update

就可以完成啦。解释如下,

:args *.txt *.cpp
1
:args *.txt *.cpp

这样写会扫描当前目录下的.txt 和 .cpp文件,并加入到参数列表。但是这样写只会稻苗当前目录,如果想要递归扫描所有下级目录的话,用

:args **/*.txt
1
:args **/*.txt

如果只想扫描下一级目录(即不扫描当前目录)的话,用

:args */*.txt
1
:args */*.txt

:argdo %s/hate/love/gc | update
1
:argdo %s/hate/love/gc | update

是将参数列表中的所有文件的hate提换成love,并写入硬盘(如果没有|update,就不会写入,但相应的替换也会被中断)。

最后强调一点,使用替换命令的时候,一定记得备份,因为替换是直接写入硬盘滴哦……

好啦,希望这篇文章对大家有用~

2) ttp://www.cnblogs.com/end/archive/2012/06/12/2546757.html

下面写的还没用过~看了大家的分享觉得这几个还不错

:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下
    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
    :n1,n2 d: 将 n1行到n2行之间的内容删除

:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,
    若不指定n1,n2,则表示将整个文件内容作为command的输入

方式2的优点在可以直接使用nyy和pp命令在各个窗口的文件之间进行拷贝和粘贴,操作比较方便。

vi 使用的更多相关文章

  1. 在docker容器中vi指令找不到

    在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...

  2. linux vi 命令大全

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  3. Cygwin中解决vi编辑器方向键和Backspace键不好使、安装vim的方法

    修改.virc文件(如果没有就创建)vi .virc 添加以下内容set nocpset backspace=start,indent,eol 保存退出:wq 如果是vim就修改.vimrc文件. 由 ...

  4. vi(vim)键盘图及其基本命令

    进入vi vi filename                打开或新建文件,并将光标置于第一行首 vi +n filename           打开文件,并将光标置于第 n行首 vi + fi ...

  5. vi安装Vundle+YouCompleteMe+注释快捷'scrooloose/nerdcommenter'

    Vundle is short for Vim bundle and is a Vim plugin manager. 从git上下载vundle $ git clone https://github ...

  6. vi学习总结

    1.模式 命令行模式:光标的移动.内容删除移动复制操作 插入模式:文字输入,即编辑状态 底行模式:文件保存或退出vi,设置编辑环境 2.基本操作 vi myfile,输入vi 文件名,,则进入vi. ...

  7. vim(vi)常用操作及记忆方法

    vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...

  8. vim vi Ubuntu

    在vi编辑模式下按退格键不能删除内容,按方向键不能上下左右移动?如果是则:1. 在vi里非编辑模式下按冒号进入到末行命令模式,然后输入set nocompatible,回车,然后在进入vi编辑模式,看 ...

  9. vi 的使用

    Vi 分三种模式:一般模式,编辑模式,和命令模式 一般模式: 光标移动,搜索与替换,删除,复制,粘贴 编辑模式:插入或者替换文本 命令模式:读取.保存文件 一般模式 光标移动: h(左), j(下), ...

  10. linux vi(vim)常用命令汇总

    1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大 ...

随机推荐

  1. HDU5000 (DP + 规律)

    题意:举例子好说点,告诉你4个数字,8,6,4,2四个数字,组成一个四位数,如果两个数字分别是1111,2222,则2222会吧1111杀掉,就是组成的四位数不能每一位都小于或等于一个数,然后让你求出 ...

  2. UILabel 的高度根据文字内容调整

    1.UILabel 对文字的自适应有两种方法. 1)将label的numberOfLines设为0;并添加自适应方法[titleLabel sizeToFit],但是这种方法并不理想. 2)根据文字的 ...

  3. JavaSE配置文件java.util.Properties【单例模式Singleton】

    如果不是放在src文件夹里面,则: p.load(new BufferedInputStream(new FileInputStream("tank.properties"))); ...

  4. bk.

    http://ol.tgbus.com/zt2013/gzsnew/ 巴士盘点 十大游戏工作室 http://bbs.3dmgame.com/forum.php?mod=viewthread& ...

  5. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  6. unity, itween, closed path

  7. 12-factor

    简介 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS).12-Factor 为构建如下的 SaaS 应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费 ...

  8. SQL Server DBA性能优化

    虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种:1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2. ...

  9. C++常见gcc编译链接错误解决方法

    除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词): 用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdy ...

  10. Web前端图表绘制JQuery插件jqplot

    在此之前使用了Chart.js.Highcharts,首先了解一下这两款插件的优势与不足,然后再来了解jqplot. 1.Chart Chart中文官网:http://chartjs.cn/ 1.1优 ...