我的acm vim 备忘
一。從命令到編輯模式
a :当前单词后面插入Append
i :当前位置插入Insert
o :当前行下新开一行插入Open new line
A :当前行尾插入Append
I :当前行首插入Insert
O :当前行上新开一行插入Open new line
比較常用就是i,a,o,I,A,O了,將來多試幾次就好了,就很熟悉了。
二。從編輯到命令
ESC :
ctrl+[ :能起到一样的效果,手指短的同学可以用它代替esc。
三。命令模式中的其他命令
在命令模式中的按鍵就很多了,這些介绍参加高速编程基本要用到的,需要练熟。
在vi命令模式裡面,有的按鍵按完後他還是在命令模式,有的改個字元或copy/paste後
又回到命令模式,有的就一去不回頭變成文字編輯模式了。
有些按鍵會把你原本想改的內容做特殊的定位,例如要改個word,也會把你帶離命令模式
文件
:q 離開vi Quit
:e xxxx 編輯xxxx Edit
:w 存檔 Write
:w xxxx 另存檔案xxxx
:q! 不存檔強迫離開
:w! 強迫存檔(对于只读文件不加感叹号是不能写入的)
:wq 存檔與離開 Write 'n Quit
:bd 关闭当前窗口
游標移動
h,j,k,l 往左,往下,往上,往右 这四个不是英文单词的缩写,而是为了让手指能够更快的控制光标的移动
0 到行首
$ 到行尾
^ 到這行的第一個非空白单词
w,W 到下個单词, 到下個非空白的单词forWord
b,B 回上個单词, 到上個非空白的单词Backword
e,E 到這個单词尾, 到下個非空白的单词尾End
Ctrl-F ,Ctrl-B 往後一頁,往前一頁
G 到文件尾
:n 到第n行 (所以到文件頭就是:1)
Ctrl-G 顯示当前在第幾行
J 将下面行加到当前行Join
搜尋與取代
/
/pattern 往下尋找pattern,要注意的是几个特殊的字符必须在前面加\。这几个字符为:.*[]^%/\?~$
?pattern 往上尋找pattern
n 再往下尋找
N 再往上尋找
:s/patrn/str/cgi搜尋patrn取代str
其中:跟s間必需指定範圍(range)沒設範圍就是游標這行
1,10 表示 1-10行
% 表示整篇
最後cgi
c 表示confirm尋問
g 表示global全部
i 表示ignore不分大小寫
常用字元字串處理
cc 改變整行Change
dd 剪切整行Delet
yy 复制整行Yank
p,P 粘贴(paste) 你最近剪切或复制的Put
cw 改變一個字Change Word
d$ 砍到行尾Delete $
ye 拷貝到這個字尾Yank e
r,R 取代一個字元, 取代整行Replace
u,U 撤销最後修改,撤销整行Undo
x,X 砍一個字元, 往回砍個字元(等於按backspace)
重複的處理
. 重複剛剛的命令或輸入
以上命令很多是可以自己组合的,
有个普遍的规律是单个命令重复两次就是针对整行,后加w就是针对一个单词,中间夹一个数字就是重复的次数
比如c5w改变5个单词,d3d删除三行
這些試試看
ce, 3x, 5dd, 10w, d0, y$, 5G
indentation
>> 往右一個indent
<< 往左一個indent
== 自动缩进当前行
=G 将当前行及后面所有行都自动缩进
gg=G 先移到文件首,然后。。。嘿嘿,全文缩进
C-w j k h l 移到下 上 左 右 窗去
我的acm vim 备忘的更多相关文章
- vim备忘
复制指定行 5,20co$(5到20行复制到最后一行之后) 指令模式下,c的使用方式与d相同,但删除后会进入INSERT模式 删除以某一符号开头或结尾的行 :%g/^\s/d(删除以空格开头的行) : ...
- vim操作命令备忘
vim操作命令备忘 查找/替换 :%s/keyword//gn //搜索匹配的关键词数量 :%s/keywords/target //替换关键词 待续……
- ACM竞赛常用头文件模板-备忘
备忘. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘
本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...
- mac指令备忘
在这里简单记录下最近使用的快捷键,备忘,随时更新. 简单指令记录 mkdir 创建路径 pwd 输出当前路径 ls 查看目录 cd touch 创建文件 tree 输出目录树 mv 源文件 目标文件或 ...
- CentOS6.4 X86_64 kvm+PXE备忘
Install 安装 1 2 3 4 5 # yum install qemu-kvm qemu-img # 使用kvm至少要安装的包,一个提供用户级别kvm模拟器,一个提供磁盘镜像的管理 # 安装虚 ...
- Linux基础之常用基本命令备忘
Linux基础之常用基本命令备忘 PWD 查询当前所在Linux上的位置 / 根目录 CD(change directory)切换目录 语法 CD /(注意添加空格) LS ...
- GIS部分理论知识备忘随笔
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
随机推荐
- (转)Java.lang.reflect.Method invoke方法 实例
背景:今天在项目中用到Method 的invoke方法,但是并不理解,查完才知道,原来如此! import java.lang.reflect.Method; /** * Java.lang.refl ...
- 【JAVASCRIPT】event对象
一.preventDefault 与 stopPropagation event.preventDefault() 和 event.stopPropagation() 不是JQuery的方法,是JS ...
- 学习笔记TF034:实现Word2Vec
卷积神经网络发展趋势.Perceptron(感知机),1957年,Frank Resenblatt提出,始祖.Neocognitron(神经认知机),多层级神经网络,日本科学家Kunihiko fuk ...
- springboot用thymeleaf模板的paginate分页
本文根据一个简单的user表为例,展示 springboot集成mybatis,再到前端分页完整代码(新手自学,不足之处欢迎纠正): 先看java部分 pom.xml 加入 <!--支持 Web ...
- RabbitMQ入门-从HelloWorld开始
从读者的反馈谈RabbitMQ 昨天发完<RabbitMQ入门-初识RabbitMQ>,我陆陆续续收到一些反馈.鉴于部分读者希望结合实例来讲 期待下篇详细,最好结合案例.谢谢! 哪都好,唯 ...
- 前端数据存储方案集合(cookie localStorage等)以及详解 (二)
前端数据存储方案集合(cookie localStorage等)以及详解 (二) 在之前的文章中已经介绍到了 前端存储方案中的 cookie . 但是 cookie 的存储上限是 4KB. 如果超过了 ...
- 最大流当前弧优化Dinic模板
最大流模板: 普通最大流 无向图限制:将无向图的边拆成2条方向相反的边 无源汇点有最小流限制的最大流:理解为水管流量形成循环,每根水管有流量限制,并且流入量等于流出量 有源汇点的最小流限制的最大流 顶 ...
- [补档][COGS 2434]暗之链锁
[COGS 2434]暗之链锁 题目 传说中的暗之连锁被人们称为Dark.<!--more-->Dark是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它.经过研究,你发现Dark呈现无 ...
- nginx实现wap移动端和PC端业务分离
随着移动互联网时代的来临,很多WEB网站都已经推出了基于手机,Ipad等移动客户端的页面访问,这里介绍一下如何利用用户UA实现用户不同终端下的用户访问: $http_user_agent 为ngin ...
- [转]为什么大型网站前端使用 PHP 后台逻辑用 Java?
最近纠结了一下,如果开发一个大型的网站,我到底应该使用php还是jsp,后台到底使用php还是用java,我的选择要么是php要么是java,因为我喜欢linux.unix,当然window平台也必须 ...