vim--Linux下的文本编辑器,相当于windows系统中的记事本一样,是学习Linux不可或缺的工具,而且vim具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便shell脚本编程,还有很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等。

目录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(按两下)立即进入命令模式

/关键词向下搜索

?关键词向上搜索

%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/vimrc

set 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选项然后正常保存退出

linux vim 字体大小,Linux学习—vim大全相关推荐

  1. linux终端字体大小6,[adminitrative][archlinux][setfont] 设置console的字体大小

    电脑的分辨率高了之后,用命令行进入的时候,完全看不清楚,是否容易导致眼瞎. 第一步便把字体调大就成了很必要的操作. 使用一个命令能马上生效: setfont 使用配置文件 /etc/vconsole. ...

  2. windows字体转移至linux,由 Windows 向 Linux 迁移字体 和 Linux 等宽字体

    1. From Windows Windows下字体库的位置为C:\Windows\fonts,这里面包含所有windows下可用的字体. 2. To Linux linux的字体库是 /usr/sh ...

  3. linux df 目录大小,Linux命令du df查看文件和文件夹大小

    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du可以查看文件及文件夹的大小. 两者配 ...

  4. vim !!_让我们学习Vim! 第2部分

    vim !! 在这里找到第1部分: 让我们学习Vim! 第1部分 因此,上一次当我们用Vim弄污双手时,我们最终写了一首非常深刻的诗. 如果您不相信这首诗,我敢说您写一首更好的诗. 谢谢. 现在,在系 ...

  5. linux求生之路字体乱码,Linux中文字符出现乱码怎么办

    摘要 腾兴网为您分享:Linux中文字符出现乱码怎么办,智慧党建,指南针,银万财富,易码平台等软件知识,以及求生之路联机工具,qsv格式转换工具,host,星空影音,瞳孔聊天室,expand.exe, ...

  6. 学习vim的linux游戏,PacVim:一个学习 vim 命令的命令行游戏 | Linux 中国

    作者 | Sk 译者 | geekpi

  7. linux page cache 大小,Linux内核学习笔记(八)Page Cache与Page回写

    Page cache是通过将磁盘中的数据缓存到内存中,从而减少磁盘I/O操作,从而提高性能.此外,还要确保在page cache中的数据更改时能够被同步到磁盘上,后者被称为page回写(page wr ...

  8. linux 终端修改字体大小,linux系统终端修改字体的方法

    1.通过console-tools设置控制台字体 1.1.选用并测试合适的字体和字库文件: 复制代码 代码如下: # ls /usr/share/consolefonts/ 1.2.测试选用喜爱的字库 ...

  9. linux echo 字体大小 背景 字体颜色 的编码

    linux 终端颜色代码 echo -e "\033[背景;字体颜色m 字符串\033[0m" eg : echo -e "\033[30m 黑色字 \033[0m&qu ...

最新文章

  1. 查看JAVA源码的网站
  2. 在多个的共享ndk项目之间共享模块
  3. 技术人的七夕表白可以有多浪漫?
  4. linux延时与定时操作
  5. 使用jdk DOM,SAX和第三方jar包DOM4J创建,解析xml文件
  6. Linux (x86) Exploit 开发系列教程之十 使用 Malloc Maleficarum 的堆溢出
  7. 二分法求非线性方程组Java_用C#编写二分法解一元非线性方程
  8. 使用OpenSSL颁发CA证书
  9. PEP 635 – Structural Pattern Matching: Motivation and Rationale
  10. adb+python实现自动领喵币
  11. B - Ternary Logic
  12. 异地购房提取北京公积金说查不到贷款信息是怎么回事
  13. 最漂亮的人是为梦想而努力的人
  14. nova7s鸿蒙系统,曝华为nova7 SE新版本要来了!处理器换成天玑800U
  15. 计算机名和DNS域名的关系,域名、DNS、IP地址的对应关系
  16. 算法设计与分析——Johnson Trotter算法
  17. js逆向验证码篇之极验4代
  18. 串口硬盘GHOST死机
  19. 广告深度学习计算:阿里妈妈智能创意服务优化
  20. 通用开户流程及测试重点

热门文章

  1. wxpython dataview处理大量数据_38个常用Python库:数值计算、可视化、机器学习等8大领域都有了...
  2. 毕业设计从入门到放弃
  3. Kubernetes的共享GPU集群调度
  4. android.support-v7版本依赖配置
  5. 3星|《掌控大趋势》:全球当前政治经济形式的资料汇编整理,对未来的预测很少,也缺乏独到深刻的见解...
  6. Android EditText回车不换行
  7. Andorid中的HAL
  8. JS - Promise使用随笔
  9. win下配置cmder
  10. python3使用requests模块完成get/post/代理/自定义header/自定义Cookie