3vim编辑器
三种模式
命令行模式
任何模式下 ESC 进入
编辑模式(INSERT)
从命令模式下 a, i 等 进入
可视化模式(VISUAL)(VISUAL BLOCK)
命令模式下,敲 v 进入
非编辑模式, ctrl + v
cd /etc/vim/
root权限编辑 vimrc, 增加一行 set number ? 显示行号
单次显示行号:
vim编辑器的命令模式输入:set number
永久显示行号:
在etc/vim下的vimrc文件,添加set number即可永久在vim编辑器显示行号。
若在vimrc文件下添加,不起作用,使用以下命令:
echo "set number">>~/.vimrc
vim编辑器改变上下左右变ABCD问题
上下左右键:echo "set nocompatible">>~/.vimrc
基本操作
a, i, o, O 进入编辑模式
ESC 进入命令模式
:q 退出vi (q! 不保存强行退出)
:w 保存 (wq 保存并退出)
:x 保存退出
:u 撤销操作
:saveas 另存为
:bn, :bp 同时打开多个文件时,切换到上一个或者下一个
x 删除当前字符
dd 删除当前行 ,删除内容存入剪贴板(p粘贴)
h,j,k,l 和 左下上右 移动光标(某些情况下方向键也是命令的一部分)
0 到行首
^ 到行首第一个非空字符
$ 到行尾
g_ 到行尾最后一个非空字符
ctrl+f 向后翻页 (forward)
ctrl+b 向前翻页 (backward)
ctrl+d 向后翻半页
ctrl+u 向前翻半页
ctrl+e 向下滚1行
ctrl+y 向上滚一行
一阶操作
gg 到第一行
G 到最后一行
10G 到第10行 (:10 等价)
e 到本单词结尾
w 到下一个单词开头
/ABC 从光标处开始查找ABC (n, N移动到下一个/上一个匹配的地方)
yy 拷贝当前行(会把换行符号一起拷贝)
p 粘贴在光标处 (大写P粘贴到光标前)
u 撤销上一步操作 (支持多级)
ctrl+r 反撤销 (支持多级)
. 重复上一条命令
N<命令> 重复N次命令 (2dd; 4p; 6iABC)
2dd 删除两行
4p 粘贴4次
6iABC 插入6个ABC (i->insert), 输入完成后按 ESC ,然后回车
二阶操作
% 移动到匹配的括号处(三种括号都行)
* 移动到下一个与之相同的单词
# 移动到上一个与之相同的单词
ye 拷贝单词 [e表示到单词词尾]
y/ABC 拷贝到ABC位置 [/ABC 表示查找ABC]
y2/ABC 拷贝到第二个ABC位置
gue 单词 转小写
gUe 单词转大写
d2l 往后删除两个字符(相当于 2x)
2dd 删除两行
d^ 删除光标到行首
d$ 删除光标到行尾
de 删除单词
d/kk 删除光标到kk位置
d2/kk 删除到光标到第二个kk位置
d 改成y 就是拷贝了
三阶操作
fk 光标移动到下一个k字母位置
dfk 从光标处删除到k字母位置
2fk 查找第二个k字母位置
v 进入可视化操作
匹配选择:如 if (strcmp(“ABC”, szStr) == 0) 光标在 A 位置
i” 选中ABC
a” 选中“ABC”
i) 选中 “ABC”, szStr
2a) 选中(strcmp(“ABC”, szStr) == 0)
ctrl+v:进入块操作
1: 移动方向键选择块
2: 每行光标前面加内容:选择块 -> I(大写 i ) -> 输入要增加的内容 -> [ESC] ->回车
3: 每行光标后面加内容:选择块 -> A ->输入要增加的内容 ->[ESC] ->回车
4: 左右缩进:选择块 -> < 和 >
5: 自动缩进:选择块 -> =
ctrl+p:insert 模式下自动补齐功能 (ctrl+n)
四阶操作
使用正则表达式
替换:%s/int/unsigned int/g ?所有int替换位unsigned int
替换某些行:1,2s/int/unsigned int/g
替换10行到末行:10,$s/int/unsigned int/g
行首加ABC %s/^/ABC/g
行尾加ABC %s/$/ABC/g
注:正则表达式中 ^表示行首,$表示行尾
13,20s/^[\/]*//g
3vim编辑器的更多相关文章
- linux 下crontab -e 命令插入及保存
由于功能需要,用到linux定时任务. 一般我们都是crontab -e 进去写好定时任务,直接保存退出就可以了,如果是第一次创建定时任务, 系统会选择默认编辑器,就不好保存文件. 在网上参考了一篇文 ...
- NiceMark——我的Markdown编辑器
NiceMark--我的Markdown编辑器 闲来无事,写了一个Markdown编辑器.基于electron,完全采用Web前段技术(Html,css,JavaScript)实现.代码已托管在Git ...
- 关于Unity3D自定义编辑器的学习
被人物编辑器折腾了一个月,最终还是交了点成品上去(还要很多优化都还么做). 刚接手这项工作时觉得没概念,没想法,不知道.后来就去看<<Unity5.X从入门到精通>>中有关于 ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- 07.LoT.UI 前后台通用框架分解系列之——轻巧的文本编辑器
LoT.UI汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui 上次说的是强大的百度编辑器 http://www.cnblogs.com/d ...
- 富文本编辑器Simditor的简易使用
最近打算自己做一个博客系统,并不打算使用帝国cms或者wordpress之类的做后台管理!自己处于学习阶段也就想把从前台到后台一起谢了.好了,废话不多说了,先来看看富文本编辑器SimDitor,这里是 ...
- 玩转Vim 编辑器
一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- [BootStrap] 富编辑器,基于wysihtml5
在我的周围,已经有很多人在使用BootStrap,但对于任何一个带留言.评论.提问.文章编辑功的网站,编辑器永远是重中之重,显然,早期的编辑器完全没考虑过BootStrap的出现,或皮肤跟网站不匹配, ...
随机推荐
- swift - UIImageView 的使用
1.创建 var imageView = UIImageView()//初始化 2.图片的显示及图片的改变 imageView = UIImageView(image: UIImage(named: ...
- 一些laravel博文
人比人比死人系列 https://www.insp.top/tag/laravel http://www.iwanli.me/
- linux命令之用户和用户组
知识点: 1.-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 2.将root用户添加到supergroup用户组 groupadd supergroup ...
- osgEarth中的StringUtils头文件中有很多关于字符串的操作
- 开源项目源码解析-PhotoView 源码解析
1. 功能介绍 特性(Features): 支持 Pinch 手势自由缩放. 支持双击放大/还原. 支持平滑滚动. 在滑动父控件下能够运行良好.(例如:ViewPager) 支持基于 Matrix 变 ...
- 在SQL数据库中怎么去掉某一列的中的一写特殊字符
用REPLACE函数,把空格替换成 ''. 例:去除 表table 中 col 列的空字符去除空格符:update table set col = REPLACE(col,' ','') 还有tab制 ...
- Androidの共享登录之方案研究
由于最近公司提到了一个需求是,一个应用登录成功了,另一个自动登录. 绞尽脑汁想了好几天,看起来很容易但是想深点就漏洞百出,有的时候代码都写完了测试都成功了突然发现给一个假设就完全失效. 先前几个同事之 ...
- 设计模式之工厂方法模式(Java实现)
“我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~).“抽象工厂模式,赶紧的自我介绍,工厂方法模式 ...
- 【BZOJ3280】小R的烦恼 最小费用最大流
[BZOJ3280]小R的烦恼 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的 ...
- android 使用动画 Button移动后不响应点击事件的解决办法
animation3.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimatio ...