博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim手册
阅读量:6536 次
发布时间:2019-06-24

本文共 3414 字,大约阅读时间需要 11 分钟。

  强大的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

转载地址:http://ppbdo.baihongyu.com/

你可能感兴趣的文章
母线的种类与作用是什么(转)
查看>>
【Xamarin 挖墙脚系列:IOS 开发界面的3种方式】
查看>>
Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
查看>>
I.MX6 Android USB Touch eGTouchA.ini文件存放
查看>>
4-5-创建索引表-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
查看>>
java 操作 RabbitMQ 发送、接受消息
查看>>
go run main.go undefined? golang main包那点事
查看>>
数据挖掘(二):认识数据
查看>>
从零开始写一个npm包,一键生成react组件(偷懒==提高效率)
查看>>
Volley(二)—— 基本Request对象 & RequestQueue&请求取消
查看>>
2017中国系统架构师大会“盛装”来袭
查看>>
Google插件switchysharp的用法
查看>>
中国最强的人工智能学术会议来了
查看>>
Metasploit的射频收发器功能 | Metasploit’s RF Transceiver Capabilities
查看>>
主库 归档 删除策略
查看>>
Chrome 更新策略大变:优先安装 64 位版本
查看>>
《Linux从入门到精通(第2版)》——导读
查看>>
路过下载攻击利用旧版 Android 漏洞安装勒索软件
查看>>
ThinkSNS 六大子版本体验及源码下载
查看>>
《算法基础》——1.5实际因素
查看>>