vim命令汇总

点击打开链接http://www.cnblogs.com/GODYCA/archive/2013/02/22/2922840.html

点击打开链接http://blog.youkuaiyun.com/lirenlin/article/details/4974007

点击打开链接http://www.linuxidc.com/Linux/2012-08/67335.htm




vim查找/替换字符串


vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 
  
  :s/vivian/sky/ 替换当前行第一个 vivian 为 sky 
  
  :s/vivian/sky/g 替换当前行所有 vivian 为 sky 
  
  :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky 
  
  :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky 
  
  n 为数字,若 n 为 .,表示从当前行开始到最后一行 
  
  :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky 
  
  :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky 
  
  可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符 
  
  :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/ 
  
  :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/ 

5. 删除文本中的^M 
  
  问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。 
  
  。 使用命令:cat filename1 | tr -d “^V^M” > newfile; 
  
  。 使用命令:sed -e “s/^V^M//” filename > outputfilename.需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M.你必须要手工进行输入,而不是粘贴。 
  
  。 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//. 
  
  。 :%s/^M$//g 
  
  如果上述方法无用,则正确的解决办法是: [Page]
  
  。 tr -d \"\\r\" < src >dest 
  
  。 tr -d \"\\015\" dest 
  
  。 strings A>B 
      6. 替换确认
         我们有很多时候会需要某个字符(串)在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认,vi的查找替换同样支持
       例如
      :s/vivian/sky/g 替换当前行所有 vivian 为 sky 
      在命令后面加上一个字母c就可以实现,即:s/vivian/sky/gc
      顾名思意,c是confirm的缩写
  
  7. 其它 
  
  利用 :s 命令可以实现字符串的替换。具体的用法包括: 
  
  :s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1 
  
  :s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1 
  
  :。,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1 
  
  :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1 
  
  :g/str1/s//str2/g 功能同上 
  
  从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索 
  
  字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作


vim 选择以前的动作命令

2,在命令模式下,使用方向键选择以前的动作,

:!!          Repeat last system command. 

:!  ↑        select  a  previous system command 

: ↑          select  a  previous command 

输入前几个字母,再使用tab或者导航↑ 键即可在以前的命令中自动补全


3,以上都是单个的命令记录,一个另外的方法是记录一连串的动作

 

(1)。使用"q{register}"命令开始,后续的动作将被记录进名为register的寄存器中。给出的寄存器名字必需是a到z之间的一个字母

(2)。执行你要执行的操作。

(3)。按下q以结束对命令的记录(注意仅仅是q一个字符,不要键入多余的字符).现在你可以通过"@{recording}"命令来执行刚刚记录

下来的记录宏了。

就象绝大多数VIM命令一样,@{recording}前加数字,可以让命令重复多次数.


Vim常用命令

1切换插入模式:
命令模式下

a                                (小写)光标之后进行插入
A                                (大写)光标所在行尾进行插入
i                                 (小写)光标前开始进行插入
I                                (大写)光标所在行首进行插入
o                                (小写)光标所在行后新插入一空行进行插入
O                                (大写)光标所在行前新插入一空行进行插入
插入模式下按ESC键返回命令模式
2 切换到编辑模式
命令模式下按【:】进入编辑模式,键入命令回车后自动返回到命令模式或按ESC键返回到命令模式。
3 保存文件
编辑模式下
:w                            (小写)保存文件
​:wq                         (小写)保存并退出vim
:w 文件名1            将文件另存为文件名1
:ZZ                          (大写)保存文件并退出,相当于:wq
:wq!                        (小写)文件所有者强制保存只读文件,如果不是文件所有者进行此操作,不能成功
:q!                                退出不保存文件
4 复制(yank)
命令模式下

yy或 Y                     复制光标所在整行
y^                         复制到光标所在行行首,不包括光标位置字符
y$                         复制到光标所在行行尾,包括光标位置字符
yw                         复制一个单词,光标必须在单词首部
yG                         复制到文件尾
y1G                        复制到文件首
nyy                        复制光标所在行开始的n行
5 粘贴
命令模式下

p                                (小写)粘贴到光标后
P                                (大写)粘贴到光标前
6 删除
命令模式下

x                                (小写)删除光标前一个字符
X                                (大写)删除光标后一个字符
dd                                (小写)删除光标所在整行
dw                                (小写)删除光标所在处一个单词
dG                                删除光标所在整行到文件尾
dgg                        删除光标所在整行到文件首
D                                (大写)删除到行尾,包含光标处的字符
d$                                与D效果相同
d0                                删除到行首,不包含光标处的字符
d^                                与d0效果相同
:n1,n2d                编辑模式下,删除n1-n2行
7撤销
命令模式下

u                        (小写)无限次保存前撤销(大概500多次)

ctrl+r                 redo

8 字符替换
命令模式下

r                        (小写)替换光标所在处一个字符
R                        (大写)开始替换,直到按ESC键退出替换,相当于按下键盘上到insert键
cc                        (小写)取代光标所在整行
S                        (大写)与ss(小写)效果相同
C                        (大写)取代到行尾,包括光标处字符
c0                        (小写,数字0)取代到行首,不包括光标处字符
c^                        (小写)与c0(小写,数字0)效果相同
9 字符串查找和替换
命令模式下

/string                从光标处开始向下开始查找字符串string
/查找模式下按n(小写)查找下一个,按N(大写)查找上一个
?string        从光标处开始向上开始查找字符从string
?查找模式下按n(小写)查找上一个,按N(大写)查找下一个
*                        向下完整匹配光标下的单词
#                        向上完整匹配光标下的单词
g*                        向下部分匹配光标下的单词
g#                        向上部分匹配光标下到单词
编辑模式下
:set ic                查找时,忽略大小写
:set noic        取消查找时忽略大小写
:f string        (小写f与string有空格)搜索一行中匹配到的string
:%s/old/new/g        全文将old替换为new,不提示
:%s/old/new/c        全文将old替换为new,提示是否替换
:n1,n2s/old/new/g        n1-n2行中,将old替换为new,不提示
:n1,n2s/old/new/c        n1-n2行中,将old替换为new,提示是否替换
在替换文本old或new中有/字符时,需要用\进行转义
10 显示行号
编辑模式下

:set nu(mber)                显示行号
:set nonu                        取消显示行号
:set nu!                        取消显示行号

11 简单排版
编辑模式下

:ce(nter)                居中显示光标所在行
:ri(ght)                靠右显示光标所在行
:le(ft)                        靠左显示光标所在行
命令模式下
J                                将光标所在下一行合并到光标所在行
>>                                光标所在行增加缩进(一个tab)
<<                                光标所在行减少缩进(一个tab)
n>>                        光标所在行开始的n行增加缩进
n<<                        光标所在行开始的n行减少缩进
12 书签
命令模式下
mx                设定书签,x是任意一个字母,通常小写(a-z),x为小写字母时,局限在一个文件之间切换;大写字母时,可在文件之间切换.
`x                (`位于数字键1旁边)跳转到书签x
编辑模式下
:marks                        查看标签
13 光标移动方式
命令模式下

H                        (大写,Head)移动到屏幕顶第一个非空白字符
M                        (大写,Mid)移动到屏幕中间第一个非空白字符
L                        (大写,Last)移动到屏幕底部第一个非空白字符
(                        (左小括号)移动到上一个句子首
)                        (右小括号)移动到下一个句子首
{                        (左大括号)移动到上一个段落首
}                        (右大括号)移动到下一个段落首
%                        光标跳转到匹配到括号处,支持{}()
[[                        光标跳转到代码块开头即{处,要求{独占一行
gD                        光标跳转到局部变量定义处
''                        (两个单引号)光标跳转到上次停靠处
h                        (小写)光标左移一个字符,相当于左方向键
l                        (小写)光标右移一个字符,相当于右方向键
k                        (小写)光标垂直上移一行,相当于上方向键
j                        (小写)光标垂直下移一行,相当于下方向键
ctrl+f                (forword)向下整页翻页
ctrl+b                (backward)向上整页翻页
ctrl+u                (up)向上翻半页
ctrl+d                (down)向下翻半页
zz                        (小写)让光标所在行居于屏幕中央
zt                        (小写)让光标所在行居于屏幕最顶部
zb                        (小写)让光标所在行居于屏幕底部
编辑模式下
:n                        指定移动到第n行
14 数字前缀与重复
命令模式下
将数字加在命令前,标示该命令处理几次,如5dd标示执行5次dd(删除光标所在整行)操作。
.        (英文句号)为命令重复命令,按下一次执行一次上一次执行过的命令。
15 浏览目录
编辑模式下
:e 目录                列出指定目录下的文件和目录
16 vim技巧
技巧1 导入文件或shell命令执行结果
编辑模式下

:r 文件名1                将文件1内容引入到本文件中
:!shell命令                在vim中执行shell命令,执行完后按回车会到vim界面
:r !shell命令        (r与!之间有空格)将shell命令执行的结果导入到本文件中
技巧2 自定义快捷键操作
编辑模式下

:map ^x 命令        (map与^之间、x与命令之间有空格,此处到^并非键盘上的^,而是按下ctrl+v出现到快捷键,表示ctrl键,后面到x为任意字母)按下ctrl+x后会执行对应到命令
例:
:map ^p I#<ESC> 当按下ctrl+p快捷组合键时,在光标所在行行首添加一个#号,并回到命令模式
技巧3 连续行注释
编辑模式下

:n1,n2/^/#/g                (#号为注释符号,在shell中注释符号为#,C++中为//)
:n1,n2/^/\/\//g        C++源文件多行连续注释
技巧4 替换
:ab string1 string2        在vim中输入string1按空格或回车后,string1会自动替换为string2
:unab string1                        取消string1的替换
vim配置文件
~/.vimrc
可将编辑模式下的命令写在里面,每个命令单独一行,这样每次启动时,会自动执行里面的命令

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值