强大的vim
在多人一起开发项目时,为了使代码风格尽量保持一致,一般,而以4个空格为缩进,不允许在代码使用TAB符而用空格代替,取消换行自动注释,换行自动缩进,用F3切换自动换行。我们可以编辑一个文件,包含下面的内容:
vi /etc/vimrc
" by wenbinset shiftwidth=4set ts=4set expandtabset autoindent"Paste toggle - when pasting something in, don't indent.set pastetoggle=
在多个文件中进行复制 => 分屏
两种方法:第 一种是先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