Vim的学习(不断积累中)
来源:互联网 发布:开设网络教育的学校 编辑:程序博客网 时间:2024/06/05 02:41
前言:记得去年在亚洲区现场赛见过许多大牛不使IDE而用Vim,这两天趁着使用ubuntu的兴头上,学学这传说中的装叉神器,翻出各种网页学习,唉,才碰这玩意儿还真是难搞,要记好多好多的快捷键,不过听介绍这会是使用者最后一个使用的编辑器,传说灰常的难学但是不可思议的好用,我大概已经领略到了前半句,相信这后半句在不久之后会实现吧~
在终端中输入“$ vimtutor”,就会出现vim教程
以下是自己每天学到的一些命令和快捷键,做成笔记以备忘吧(不断积累中):
1、vim分为两种模式,打开vim后发现啥也输不进去,原来这是Normal模式,此时的光标是粗黑的
想要输入字符,按‘ i ’进入Insert模式,之后光标变成细条状,左下角显示“--插入--”,这时就可以输入了。
在Insert模式下,键盘上的键用来输入;在Normal模式下,键盘上所有的键都是快捷键。o_O
2、一般按‘ : ’粗边标就会跳到底部的输入行,一般是用来输入命令的。
例如:‘ :w filename.format ’ 将文件存盘;
' :q ' 退出;
' :q! '不保存强制退出。
3、‘ x ’ 删除当前光标所在的一个字符,
‘ X ’删除当前光标所在的前一个字符。
4、' dd '删除当前行,并将这行存到0剪切板里(只能复制在当前vim文件里)。
5、‘ p ’ 粘贴剪切板。
6、vim默认Tab为8位,“ :set ts=4 ”将Tab设置为四位。
7、"=→"将该行缩进匹配,“:set sw=4”将其设置为与Tab相符。
8、“:set autoindent”设置自动缩进。
9、“:set number”设置行号。
10、为了方便,将上面四步直接写入vimrc中,省得每次都要设置。
11、全选:“ ggVG ” --- gg让光标移到首行,V进入可视模式,G光标移到最后一行。
选中后, d 删除选中内容,y 复制到在当前vim文件里, "+y 复制到系统剪
切板里(可以粘贴在任何方)。
选择某一段:“nggVmG”,n为其起始行,m为结束行。
选择一行中的某小段文本,按“v”之后方向键移动光标。
PS:"v"可视化当前字符,"V"可视化当前行,Ctrl+'v'可视化行最前至光标处。
12、运行.cpp脚本文件的方法:
(1)打开终端,输入$ g++ filename.cpp(gcc运行c文件),编译.cpp文件;
(2)输入$ ls ,可以看到目录下出现了绿色的a.out文件;
(3)输入$ ./a.out ,就可以输入了~
13、替换:
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
PS:"%"指对全部文本
:3,7s/str1/str2/g仅替换文件中的第3行到第7行中的“str1”成“str2”
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g
14、统一添加注释符:
‘Esc’
‘0’ 光标移至行首
Ctrl + v
n‘j’ 选中想要注释的行数 或者 直接‘j’到想要注释的代码块的最后一行
‘I’(大写) 插入模式
‘//’
两次‘ESC’
15、删除空行:
%s/^\n//g 删除所有空行;
%s/^\n$//g 删除连续空行并保留一个空行
16、:n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下;
:n1,n2 co n3 复制n1-n2行(包括n1,n2)到n3行之下;
:n1,n2 d 删除n1-n2行(包括n1,n2)行;
- Vim的学习(不断积累中)
- VIM学习(积累中....)
- Java 虚拟机学习 不断积累
- python3.4学习的点点滴滴、不断的积累
- 网上投简历的心得(不断积累中)
- 几个好的博客和网站(不断积累中)
- 我需要不断的积累
- 基础知识,需要不断的积累
- php学习积累(工作积累、笔试积累,不断增加)
- C#编程小技巧(不断积累中)
- Js编程小技巧(不断积累中)
- java中函数积累,会不断修改
- android 开发学到的语法。不断积累
- eclipse的一些设置不断积累
- 做一个不断积累的人
- 人生就是不断积累与学习,第一个博客留给未来的自己
- 不断的学习,不断的思考
- Makefile学习(不断学习中)
- 【转】如何构建达芬奇的DSP Server
- java字符
- USACO 1.2
- AOJ662 越来越快
- TI Davinci DM6446开发攻略——开发环境搭建
- Vim的学习(不断积累中)
- Hibernate映射之“继承映射”--subclass
- SPSS 顾客购买习惯调查问卷案例分析
- 001_013 Python 字符串分割 访问子字符串
- LBP特征
- 我在知乎回答关于 Linux C++ 服务端编程的学习方法
- CSS菜单实例:一款简单的CSS下拉菜单
- make clean与make distclean的区别
- Eclipse中使用自定义模板来弥补Myeclipse没有新建Filter的功能