vim--


目录
vim的使用
退出模式
vim的三种主要模式
命令模式
vim的个性化配置
产生.swp文件的深入解析
一、vim的使用
vim + filename
编辑文件,当文件不存在的时候会在保存退出后自动创建文件
vim + file1 + file2 + ... 编辑多个文件
:next 下一个文件
:prev 上一个文件
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall 保存退出所有
vim -o + file1 + file2 多文件水平分割显示
-O + file1 + file2 多文件垂直分割显示
Ctrl + w,然后上或下 屏幕跳转

    Ctrl + w,然后v         一个文件垂直分割Ctrl + w,然后s         一个文件水平分割:qall                   全部退出

二、退出模式
(保存退出)
: 进入退出模式
w 保存
q 退出
q! 强制退出,不保存
w! 强制保存
当文件权限为400,文件的所属人可以使用w!
wq,x 保存退出
r + filename 将文件filename内容粘贴到当前文件
w + filename 将当前文件内容存入另一个文件filename
! + command 将命令执行结果直接插入到相应位置
r! + command 将命令输出结果写入在光标所在行的下一新行
.! + command 将命令输出结果替换光标所在行内容
ESC(按一下) 延时2秒进入命令模式
ESC(按两下) 立即进入命令模式
/关键词 向下搜索
?关键词 向上搜索br/>%s/要查找的内容/替换为的内容/修饰符
其中的分隔符/可以换成@
修饰符:
% 对全文生效
i 取消大小写
g 全局替换,不加g每一行只替换第一次出现的
三、vim的三种主要模式
退出模式
插入模式
(文本编辑)
命令模式
四、命令模式
(移动光标,复制,剪切,粘贴,撤销,重做,搜索,进入其他模式)
h(左)l(右)k(上)j(下) 移动光标
w 单词间移动
H 跳转至页首
L 跳转至页尾
M 跳转至页中间
gg 文件的首行
G 文件的尾行
数字 + G 跳转至第几行 或者 退出模式下 数字 + enter
i 在光标所在位置进入插入模式
I 在光标所在行的行首进入插入模式
a 在光标所在位置的后一个字符进入插入模式
A 在光标所在行的行尾进入插入模式
o 在光标所在行的下一行创建空白行并进入插入模式
O 在光标所在行的上一行创建空白行并进入插入模式
ZZ 保存退出
ZQ 不保存退出
u 撤销,最终至文件打开时候的状态
U 直接撤销至文件打开时候的状态(仅对一行内容有效,修改期间换行则失效)
. 重复上一个操作
e! 将文件直接恢复到打开状态
v 从光标开始的位置上下左右选中内容(针对字符)
V 从光标所在行的位置上下选中整行(针对行)
r + 任一字符 替换
R 进入替换模式。可以多个字符修改
dd 剪切光标所在行内容
dw 剪切光标所在的整个单词
yy 复制光标所在行内容
yw 复制光标所在的整个单词
p 在光标所在行的下一行粘贴或者光标所在处向后
P 在光标所在行的上一行粘贴或者光标所在处向前
Ctrl + f 向下翻屏
Ctrl + b 向上翻屏
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏
五、vim的个性化配置
/etc/vimrc 针对所用用户
~/.vimrc 针对指定用户
(先/etc/vimrc再~/.vimrc,后者的效果会覆盖前者的效果)
set number 或者 set nu 显示行号
set nonumber 或者 set nonu 取消显示

set ai       自动缩进
set noai     取消缩进 set list     显示Tab键为^I和换行符为$ 可以区分Tab、空格、换行
set nolist  取消
但是上述的配置会在退出之后设置不予保存,可以:vim /etc/vimrcset ai/nu/list 添加到第一行wq保存退出永久设置成功

六、产生.swp文件的深入解析
有时候我们利用vim编辑文件,会出现Swap file ".xxx.swp" already exists!的字样。下面来分析这种情况:
①利用watch命令,可以动态的刷新一条命令的输出结果,
在终端1下输入watch -n 1 ls -al /app 每隔一秒刷新/app目录下的情况
②然后打开另一终端(命名为终端2)输入vim /app/fstab
发现终端1出现了.fstab.swp文件
③当我们编辑fstab之后,正常保存退出或者直接退出,终端1的.fstab.swp文件不在了
④我们联想下命令模式下为什么u可以一直撤销至最终打开的状态;当我们对fstab文件不停地大量修改的时候,我们发现终端1的.fstab.swp文件大小一直增大,fstab文件大小不变。
⑤再打开一终端(终端3),输入killall vim,即表示非正常退出,终端1的.fstab.swp仍然存在
⑥在终端2输入cat fstab,结果显示的是文件没有修改之前的内容,即没有保存
最终得出:当.fstab.swp存在时,vim fstab会出现Swap file ".xxx.swp" already exists!字样{一种情况是另一个用户正在编辑,一种情况就是上次编辑非正常退出}
其实这个文件存放着上次修改文件但未保存的内容
⑦如果想正常编辑fstab文件,可以在终端2输入vim -r fstab,出现提示按enter
发现终端1出现了一个.swp.swo文件
这是因为原来的.swp没有删除,再次编辑fstab文件时,会再次出现一个.swp文件,但是.swp文件已经存在,所以只能用另外一个名字.swo(防止重名)
⑧这次:wq正常退出之后,.fstab.swo消失
⑨对于最后的.fstab.swp文件我们可以rm .fstab.swp删除
也可以vim fstab进入之后输入D选项然后正常保存退出

转载于:https://blog.51cto.com/10085711/2066359

Linux学习—vim大全相关推荐

  1. linux vim 字体大小,Linux学习—vim大全

    vim--Linux下的文本编辑器,相当于windows系统中的记事本一样,是学习Linux不可或缺的工具,而且vim具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便shell脚本编程,还有很 ...

  2. Linux学习Vim使用及账号用户管理

    Vim使用及账号用户管理 什么是Vim编辑器 Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.linux必须要学会(查看内容,编辑内 ...

  3. Linux学习 | vim编辑器关机重启登录注销

    文章目录 一.vim编辑器 1.1 基本介绍 1.2 vim编辑器的三种模式 1.2.1 一般模式 1.2.2 编辑模式 1.2.3 命令行模式 1.3 vim快捷键 二.关机重启&登录注销 ...

  4. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  5. Linux学习(三)--vi和vim编辑器

    Linux学习–vi和vim编辑器 一.基本介绍   首先,我们需要明白一点,所有的Linux系统内都会默认安装vi文本编辑器:   其次,vim可以看做是vi的增强版,具有程序编辑的能力,可以主动的 ...

  6. 【 Linux 】Vim学习指南

    本文转载自:Vim学习指南 你想尽可能快地自学vim(为大家所熟知的最好的编辑器) .这是我学习的方法:从细处入手然后慢慢掌握所有技巧. Vim 六十亿美元的编辑器 设计优良,强壮,快速. 学习vim ...

  7. Linux学习之Vim编辑器

    Linux学习之Vim编辑器 输入模式-Esc键–>命令模式 末行模式-Esc键–>命令模式 命令模式-a,i,o等键–>输入模式模式 命令模式- :键 -->末行模式 命令模 ...

  8. Linux 中vim编辑器学习笔记

    vim是Linux是非常常用的编辑器,也是编程开发中的神器之一.接下来,是我学习vim编辑器的一些笔记,总结如下: 首先:我们接触的vim编辑器一共有三种模式,分别为命令模式.编辑模式.末行模式. 具 ...

  9. linux vim命令跳到67行,Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

最新文章

  1. 一只蝙蝠的自述,在朋友圈火了
  2. java的classloader引用实例_通过实例Java ClassLoader原理
  3. 在Windows2003下搭建FTP服务器
  4. 小玩流媒体播放——HLS流媒体点播系统
  5. Git在服务器安装完成后续工作
  6. 【资源】媲美搜索神器everything,超过1秒出结果算我输!
  7. 圣诞是我们这样过的,美女如云 (图)
  8. 通用计算机的时代,MIT论文:通用计算机时代即将终结
  9. 网管必学之交换机VLAN的配置
  10. erp沙盘采购总监的心得_经验分享 让ERP系统操作少走冤枉路
  11. 发现电脑上装着liteide,就用golang做一个TCP通讯测试(支持先启动client端和断线重连)...
  12. Python自定义模块
  13. 一步一步教你安装并登陆My SQL(最详细教程,没有之一)
  14. 网银“交易密码丢失U盾作废”引质疑
  15. 《Ivor Horton's Beginning Java》 Chapter1-7 读书笔记
  16. QML state详解
  17. 电商项目之收货地址理解
  18. Linux删除除了某个文件之外的其他所有文件
  19. 系统集成项目管理工程师2020年下半年下午案例分析题及答案
  20. 搭建Tomcat集群详解

热门文章

  1. Struts2 datetimepicker 日期月份乱码解决
  2. android 导入so库文件
  3. Qtum量子链AUR开发工具包即日上线
  4. Android使用NDK OpenGL ES3.0绘制一个三角形
  5. 消息队列—主要消息中间件优势对比
  6. Redis的过期机制
  7. project5 大数据
  8. iOS - Rac(ReactiveCocoa)
  9. tomcat 下catalina.out 日志乱码问题处理
  10. jq 按钮能触发submit吗