vim精简版教程

vim编辑器

vim trree

编辑器的分类

  • 文本编辑器,ASCII码
  • 字处理器:word

全称

  • vi:Visual interface
  • vim: Visual interface improved

分类

  • 全屏编辑器,

  1. vim
  2. Emacs
  3. notepad++
  4. ...
  • 模式编辑器

  1. grep
  2. sed
  3. awk

vim模式:

  1. 编辑模式(命令模式)
  2. 输入模式
  3. 末行模式
  4. 可视化模式(块)

默认处于编辑模式

模式转换

编辑模式(命令模式) --->>输入模式

   i:在当前光标所在字符的的前面,转换为输入
    a:在当前光标所在字符的的后面,转换为输入
    o:在当前光标所在字符的行下方,新建一行,并转为输入模式。
    I:在当前光标所在行的行首,转为输入模式
    A:在当前光标所在行的行尾,转为输入模式
    O:在当前光标所在行的上方,新建一行,并转为输入模式。

输入模式--->编辑模式(命令模式)

ESC键

编辑模式(命令模式)---->>末行模式

:
10d
10,20d
set nu
!ls /etc

末行模式---->> 编辑模式(命令模式)

ESC  ESC键

一.打开文件:

vim filename
vim /path/to/somefile
vim +12 file :打开文件,光标在12行
vim  +# file :打开文件,光标在N行
vim  +   file:打开文件,光标在最后一行。
vim  +/pattern file :打开文件,光标在第一个匹配的行首

二.关闭文件:

1.末行模式关闭文件
:q  退出
:q!
:wq   保存退出
;w  保存 
:w!  强制保存
:wq   --> :x

2.编辑模式(命令模式)
ZZ:保存退出

三.移动光标(编辑模式)

1.逐字符移动:
 h:向右
 j:向下
 k:向上
 l:向左
 数字h  
 5h:向右移动5个字符
 
2.逐个单词移动
 w:移动到下一个单词词首
 e:跳到当前单词或下一单词的词尾
 b:跳到当前单词或前一单词的词首
 #w:一次跳n个单词。
 4b:


3. 行内跳转
  0:跳到行首(绝对行首)
  ^:行首的第一个非空白字符
  $:绝对行尾
4.行间跳转
   #G:跳转到n行
   G:最后一行
   GG:第一行

  末行模式   :#  移动到n行

四、翻屏

编辑模式(命令模式)
f: 向后翻一屏、
CTRL+b:向上翻一屏

Ctrl+d: 向下翻半屏
Ctrl+u:向上翻半屏

五、删除单个字符

x:删除光标所在处的单个字符
#x:删除光标所在处及向后n个字符

六、删除命令:d

d命令跟跳转命令组合使用
dw:
3dw:
#de,#db
dd:删除当前光标所在行
#dd:删除当前光标所在行及下面共#行 


末行模式下
startadd,Endaddd
1,8d
.,5+d
.:表示当前行
$:表示最后一行
+#:向下#行
1,$-3d:

最后一次删除的内容,可以粘贴到别处

七、粘贴命令p

p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

八、复制命令 y

yy:一行
#y:

九、先删除内容,在转换为输入模式(修改)

c:同d命令
c$:
cc:
5C:

十、替换

r:替换单个字符
R:进入替换模式

十一、撤销编辑操作:

u:撤销前一次的操作:
  连续u,撤销此前n次操作
3u
#u:撤销最近#次操作

十二、撤销上一次的撤销

Ctrl+r
恢复

十三、重复前一次编辑操作

.

十四、可视化模式

v:按字符选取
V:按矩形选取
Ctrl+v:

十五、查找

/pattern
?pattern
n
N

十六、查找并替换

在末行模式下 用法和sed一样 address1,address2s/pattern/string/gi 1,$ %:表示全文。

十七、打开多个文件

vim file1 file2
;next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换最前面的一个文件
退出
:qall 全部退出

十八:分屏显示一个文件

ctrl+w ,s:水平分割窗口
ctrl+w,v:垂直分割窗口

在窗口间切换光标
Ctrl+w,ARRON

:qa 关闭所有窗口

十九、分窗口多个文件

vim -o file1 file2  file3 ..水平分割窗口
vim -O  file1 file3 ....    垂直分割窗口
二十、将当前文件部分内容另存为另一文件
末行模式下使用w命令
:w
:add1,addr2w /path/to/somewhere

二十一、将另一个文件的内容填充在当前文件中

:r /path/to/somefile

二十二、跟shell交互

:!command

二十三、高级话题

1.显示或取消行号
:set number
set nu
:set nonu
2、显示忽略大小写或区分大小写
set ignorecase
set ic
:set noignorecase
:set noic
3.设定自动缩进
:set autoindent
:set noai

4.查找的文本高亮显示或取消
:set hlsearch
:set nohlsearch

5.语法高亮
:syntax on
:syntax off

二十四、配置文件

/etc/vimrc
~/.vimrc(家目录下)

二十五、练习vim的小游戏

vimtutor 
vim -r file

总结

以上都是我大学的时候,学习的笔记,无意间看到了,发现很多东西都忘记了,现在准备复习一下,分享在这里。下面赠送一个安装vim插件的命令。

神器: wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】Java9的新特性

Java 9 包含了丰富的特性集。虽然Java 9没有新的语言概念,但是有开发者感兴趣的新的API和诊断命令。 我们将快速的,着重的浏览其中的几个新特性: ? ...

3688
来自专栏烙馅饼喽的技术分享

用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- Demo分析

如何创建工程 下载最新的Unity发布插件包。 打开Unity,新建一个项目 将插件包导入 ? 在菜单中点击ASRuntime/Create ActionScr...

34310
来自专栏崔庆才的专栏

用Flask+Aiohttp+Redis维护动态代理池

5255
来自专栏owent

pbc的proto3接入

Protobuf 的 proto3发布也有挺长一段时间了。现在很多新项目慢慢转变用proto3来开发。这篇文章主要记录一下我在给pbc写对proto3支持时的一...

2121
来自专栏python3

python xml模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀...

941
来自专栏技术碎碎念

OS存储器管理(二)

离散分配 分页(Paging),分段,段页式 一、分页 一个进程的物理地址可以是非连续的; 将物理内存分成固定大小的块,称为块(frame); 将逻辑内存分为同...

3398
来自专栏地方网络工作室的专栏

Python3 初学实践案例(6)终极 CLI 密码生成程序实现

Python3 初学实践案例(6)终极 CLI 密码生成程序实现 在前面一章的学习中,我已经完成了一个一定扔出 6 的生成密码算法实现。但是只能将生成的密码输出...

2008
来自专栏木头编程 - moTzxx

mysql 设置某个字段为随机整数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1241
来自专栏linux驱动个人学习

Linux CFS调度器之队列操作--Linux进程的管理与调度(二十七)

完全公平调度器CFS中有两个函数可用来增删队列的成员:enqueue_task_fair和dequeue_task_fair分别用来向CFS就绪队列中添加或者删...

1562
来自专栏CSDN技术头条

Java 9的14个新特性总结

Java 9 包含了丰富的特性集。虽然Java 9没有新的语言概念,但是有开发者感兴趣的新的API和诊断命令。 我们将快速的,着重的浏览其中的几个新特性: ? ...

2145

扫码关注云+社区

领取腾讯云代金券