zl程序教程

您现在的位置是:首页 >  工具

当前栏目

vim手册

Vim 手册
2023-09-27 14:25:01 时间

http://blog.csdn.net/niushuai666/article/details/7275406  强大的vim

在多人一起开发项目时,为了使代码风格尽量保持一致,一般,而以4个空格为缩进,不允许在代码使用TAB符而用空格代替,取消换行自动注释,换行自动缩进,用F3切换自动换行。我们可以编辑一个文件,包含下面的内容:

vi /etc/vimrc

" by wenbin
set shiftwidth=4
set ts=4
set expandtab
set autoindent
"Paste toggle - when pasting something in, don't indent.
set pastetoggle=<F3>

  

 

在多个文件中进行复制 => 分屏

两种方法:第 一种是先vim一个文件,然后再:sp :vsp 一个文件            :vsp是左右分屏,:sp是上下分屏

              第二种是         vim -on file1 file2          vim -On file1 file2      n是数字(打开文件个数)    o是上下分屏,O是左右分屏

              ctrl+w+hjkl(可以不必须hjkl)  是进行切换界面          ctrl+W+hjkl是调换file1和file2的位置

 

多行注释  ctrl+v  选中后按I,然后编辑(这里只能看到一行被修改了),然后esc,就可以看到多行被同时修改了。

 

打开文件vim lianxi1.py

然后在里面输入 :sp lianxi2.py      

这样就会分屏,当然可以类似再打开lianxi3.py

使用ctrl+w 来进行切换  也可以ctrl+w后hjkl来上下左右移动

这样可以在几个文件中来回复制粘贴了

 

% 找到括号匹配

hjkl光标移动,集中j是向下

$ 到行尾

0 到行头

ctrl+p或者ctrl+n 自动补齐单词

==  自动缩进       编辑 /etc/vim/vim/vimrc文件,添加set shiftwidth=2  可以设置默认空格为2的缩进

替换  :s/from/to/               比如 把tab替换为4个空格    :%s/\t/    /g            范围符号%表示在所有行进行搜索替换,方式符号g表示替换这一行中所有的,不加g就只替换第一个

qa宏记录器

18gg 或者18G  跳到指定行号

gg 第一行

G 最后一行

M 这一页中间

H 这一页第一行

ctrl + g当前行号

5 + enter 跳到下面5行

5 + space 跳到后面5个字符处

dd删除这一行

5dd删除5行

 查找用 /find 或者?find   然后enter     find是要找的词

用n或者N找下一个匹配到的         /和?,n和N只是方向不同而已

u是撤销 ctrl+r是反撤销

 

复制多行 

复制9到15行,然后在16行粘贴

把光标移到第9行
shift v
再把光标移到第15行
y
再再把光标移到第16行
p

 

多行编辑,多行插入同一字符,其实就是块选择,A或者I编辑,然后esc就ok:

按 <Ctrl-v>,进入 Visual Block mode,按 G 到末行,按 $ 到所有行的行尾,按 A 在行尾添加,输入添加的内容(只有第一行会显示),按 <ESC> 退出编辑

 

shift v 是行选,ctrl v是块选,选好了y复制,p粘贴

 

鼠标粘贴,这个vim没关系,哪里都可以,左键选择,然后中键粘贴

 

复制到系统粘贴板

vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。比如使用+粘贴板,就选择好后(shift v,不选默认这一行)  "+y 就复制了,"+p 就粘贴了。

注意+是系统粘贴板哦

 

1、只安装vim不能实现从vim中用shift v选择后,然后复制到浏览器或其他文本中,只能用鼠标左键选择,然后中键粘贴

2、要想使用shift v选择后,然后复制到浏览器或者其他文本中,需要安装gvim,比如vim-gnome或者vim-gtk ,   sudo apt-get install vim-gnome

     这样后,就可以用shift v 选择后,用 "+y 复制到系统粘贴板中,可以随便复制了,nb的是居然可以再vmware用ubuntu的这个复制到windows下的粘贴板,这是真正的系统粘贴啊。

 

 

按「ctrl」+「b」:屏幕往“后”移动一页。  up
按「ctrl」+「f」:屏幕往“前”移动一页。  down
按「ctrl」+「u」:屏幕往“后”移动半页。  
按「ctrl」+「d」:屏幕往“前”移动半页。

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。  
「#yw」:复制#个字到缓冲区  
「yy」:复制光标所在行到缓冲区。  
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。  
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

 

 

要自当前光标位置向上搜索,请使用以下命令:

/pattern Enter

其中,pattern 表示要搜索的特定字符序列。

要自当前光标位置向下搜索,请使用以下命令:

?pattern Enter

按下 Enter 键后,vi 将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。例如,要向上搜索 place 一词,请键入:

/place Enter

如果 vi 找到了 place,它将把光标定位在 p 处。要搜索 place 的其他匹配,请按 n 或 N:

n,继续朝同一方向搜索 place。

N,反方向进行搜索。

如果 vi 未找到指定的 pattern,光标位置将不变,屏幕底部显示以下消息:

Pattern: 未找到

4.5.1 搜索特殊匹配
在上面的示例中,vi 查找到包含 place 的任何序列,其中包括 displace、placement 和 replaced。

要查找单个的 place,请键入该单词,并在其前后各加一个空格:

/ place Enter

要查找仅出现在行首的 place,请在该单词前加一个插字符号 (^):

/^place Enter

要查找仅出现在行尾的 place,请在该单词后加一个货币符号 ($):

/place$ Enter

使用 ^
要逐字搜索这种带有插字符号 (^) 或货币符号 ($) 的字符,请在字符前加一个反斜线 (\)。反斜线命令 vi 搜索特殊字符。

使用 $
特殊字符是指在 vi 中具有特殊功能的字符(例如 ^、$、*、/ 和 .)。例如,$ 通常表示“转至行尾”,但是,如果 $ 前紧跟一个 \,则 $ 只是一个普通的字符。

使用 \
例如,/(No \$ money) 向上搜索字符序列 (No $ money)。紧跟在 $ 之前的转义字符 (\) 命令 vi 逐字搜索货币符号。

 

 

复制多行

比如我要复制从第1行到第5行的数据,复制到第9行

光标移到第5行任意位置,输入ma
光标移到第1行任意位置,输入y'a(这一定要打这个“'”单引号,否则就进入“INSERT”状态了
光标移到需要复制的行,输入p,行前复制输入大写P

或者

首先把光标移到第1行,然后d4(这里一共复制了1~5行,技巧是利用删除的命令,其实这里是删除1~5行,删除完了后,一定要使用u命令来取消删除,不过在删除的同时复制了这1~5行,所以可以使用p来复制)
p
然后把光标移到要粘贴的位置
p

或者

把光标移到第9行
shift v
再把光标移到第15行
ctrl c
再再把光标移到第16行
p

或者

Nyy命令复制从光标所在行开始的N行,一般在5行以内非常直观的数字时使用的比较多

这四种方法,我倾向第三种,操作简便,而且直观,并且用到了ctrl+c这个几乎是复制的代名词的命令。
备注:
千万不要同时使用多次复制多行,只会认第一次的,我的办法是使用yy来复制一样(即取消复制多行);
查询行号,在不可编辑模式下输入:set number 


vim 插入别个文件内容
在命令模式插入 r /path/filename

 

 

 

系统粘贴板

使用系统粘贴板,看到有帖子说是安装下面三个才能用gvim,但是我目前就只用了第一条命令

sudo apt-get install vim-gnome

sudo apt-get install vim-gui-common

sudo aptitude install vim-full