鸟哥的Linux私房菜10.16 vim程序编辑器
第10章 vim程序编辑器
为什么要学习vim?——1.所有的Unix Like系统都会内建vi文书编辑器,其它编辑器不一定了;2.很多软件的编辑接口都会主动调用vi;3.vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的正确性;4.程序简单,编辑速度快。
vim就是vi的升级版本了哦
----------------------------------------------------------------------------------------------------------
vi的使用分为三种模式:一般模式、编辑模式、指令列命令模式
【一般模式】用vi打开一个文件,就是删除、粘贴功能了,按 [:wq] 可以离开vi
【编辑模式】按下“i,I,o,O,a,A,r,R”中任一个字母就可以进入编辑模式,按下后界面左下方会出现[INSERT或REPLACE]的字样,按Esc可以返回一般模式
【指令列命令模式】在一般模式时输入' : / ? '中的任何一个按钮,可以将光标移动到最底下那一行,可以搜寻资料,而且读取、存盘、大量取代字符,离开vi,显示行号等等是在这个模式完成。
**在vi里面,[tab]这个按钮所得到的结果与空格符所得到的结果是不一样的**
如果权限不对,可以使用 [:wq!] 来强制写入,这样就实现了vi的编辑功能。
按键说明
h左,j下,k上,l右【光标】
[Ctrl]+f下,b上,d下半,u上半【屏幕】
+ 非空格符的下一列; - 非空格符的上一列 【光标】
n<space> n表示数字,向后面移动n个字符 【光标】
0或者[Home] 本行第一个字符【光标】
$或[End] 本行最后一个字符【光标】
H上,M中,L下,G尾 【屏幕行数的第一个字符】
nG,移动到这个文件的第n行(可配合 :set nu) gg移动到文件第一行,相当于1G(常用)
n<Enter> 光标向下移动n行(常用)
/string 光标之下,?string光标之上 搜寻字符串
n重复前一个搜寻的动作
N反向重复前一个搜寻的动作
:n1,n2s/word1/word2/g 在第n1和n2行之间寻找word1这个字符串,并用word2取代之(常用)
:1,$s/word1/word2/g 在第1和最后一行之间寻找word1这个字符串,并用word2取代之(常用)
:1,$s/word1/word2/gc 同上,且在取代前提示给用户确认的机会(常用)
x ,X x为向后删除一个字符[del],X为向前删除一个字符[backspace](常用)
nx 连续向后删n个字符
dd 删除游标所在的一整行~~~~~~~~书上写的一整列(常用)
ndd 删除光标所在向下n行(常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标到最后一行的所有数据
d$ 删除光标所在到该行最后一个字符
d0 删除光标所在到该行第一个字符
yy 复制光标所在的那一行(常用)
nyy 复制光标所在向下的n行(常用)
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在列到最后一列的所有数据
y0 复制光标所在的那个字符到该行首的所有数据
y$ 复制光标所在的那个字符到该行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,P为在上一行粘贴
J 将光标所在列与下一列的数据结合成同一列
c 重复删除多个数据,例如向下删除10行, 10cj
u 复原前一个动作(常用)
[Ctrl]+r 重做上一个动作(常用)
. 重复前一个动作(常用)
:w 存储(常用)
:w! 若文件只读,强制写入。不过到底能不能写入,还是跟用户权限有关
:q 离开vi(常用)
:q! 强制离开vi而不存储档案
:wq 储存后离开,若加!则是强制储存后离开
ZZ 有修改则储存后离开,无修改则不储存离开
:w [filename] 将编辑的数据储存成另一个档案
:r [filename] 将filename这个文件中的内容加到光标后面
:n1,n2 w [filename] 将n1到n2的内容储存到filename这个文件
:! command 暂时离开vi到指令列执行command的显示结果
:set nu 显示行号,设定之后,会在每一行的前缀显示该行行号
:set nonu 与set nu相反,取消行号
--------------------------------------------------------------------------------------------------------------
vim的救援功能——突然死机的时候通过某种机制恢复未储存的数据【暂存档】
vim编辑过程中,在被编辑的档案的目录下,再建立一个名为 .filename.swp 的档案
由于【暂存档】存在,vim有时会判断你的文件有些问题:
1.可能有其他人或程序同时在编辑该档案。可以让别人结束vim编辑工作,或者如果你只是查看,就选择开启成只读文件okay了
2.因为某些不知名原因导致vim中断——如果尚未保存vim操作,应按下[R],此时会载入暂存档的内容,不过事后要删除暂存档的文件哦;如果确定暂存档没用,直接按下[D]即可
-------------------------------------------------------------------------------------------------------------
alias vi='vim' 执行vim,如果没有这一行,就需要用vim filename来启动vim了
区块选择(Visual Block)
比如说选择一块,复制或者什么操作的
v 字符选择,会将光标经过的地方反白选择 |
V 行选择,会将光标经过的行反白选择 |
[Ctrl]+v 区块选择,可以用长方形的方式选择资料 |
y 将反白的地方复制起来 |
d 将反白的地方删除掉 |
多文件编辑:
:n 编辑下一个文件 |
:N 编辑上一个文件 |
:files 列出目前这个vim的开启的所有文件 |
多窗口功能:
在指令模式下输入 :sp filename 即可,按键主要有以下几个
:sp [filename] 开启一个或者多个窗口 |
[ctrl]+w+j/↓ 移动光标到下方的窗口 |
[ctrl]+w+k/↑ 移动光标到上方的窗口 |
[ctrl]+w+q 离开 |
显示vim的所有环境设定参数 :set all
-----------------------------------------------------------------------------------
DOS与Linux的断行字符不相同
Linux底下仅有LF($)这个断行符号
可以使用 unix2dos [kn] file [newfile] 或者 dos2unix [-kn] file [newfile] 来进行dos和linux文件的切换
语系编码转换:
http://linux.vbird.org/linux_basic/0310vi/vi.big5
转载于:https://blog.51cto.com/yajunge/1898085
鸟哥的Linux私房菜10.16 vim程序编辑器相关推荐
- chmod 777 什么意思:鸟哥的linux私房菜第六章学习笔记
鸟哥的linux私房菜基础学习篇:心血来潮决定看一下这本书,虽然都是讲很基础的东西,但是,绝对不是浪费时间,比如我看完了之后就终于明白了chmod777是什么意思了. 写这个读书笔记也主要是想记录一些 ...
- 鸟哥的Linux 私房菜 (1-12) + my
<<Linux 鸟哥的私房菜>> 心得 : 实践与观察才是王道 第0章 : 计算机概论 计算机 : 接受用户输入的指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产 ...
- 鸟哥的Linux私房菜学习心得-基础操作
<鸟哥的Linux私房菜>特别适合新手作为Linux的入门教材,即使没有计算机知识基础也能学明白,鸟哥算是很用心了.半个月来学习了鸟哥主页教程的基础篇,感觉良好,因此特意写下学习的感受,以 ...
- 鸟哥的Linux私房菜视频!
本文转载于一牛网LINUX论坛,需要下载视频的请点击:http://bbs.16rd.com/thread-29646-1-1.html 说到Linux,估计有很多同学都有听过并且跃跃欲试地想学习一下 ...
- Linux_正则表达式与文件格式化处理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇必学会)
前言 正则表达式 (Regular Expression, RE, 或称为常规表达式)是通过一些特殊字符的排列,用以"搜寻/取代/删除"一列或多列文字字串,简单的说,正则表达式就是 ...
- 鸟哥的linux私房菜-文件压缩于打包-2
dump 备份命令: -S :仅列出后面的待备份数据需要多少磁碟空间才能够备份完毕: -u :将这次dump 的时间记录到/etc/dumpdates 文件中: -v :将dump 的文件过程显 ...
- 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...
- Linux_进程管理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇就够了)
前言 当一个程序被载入到内存中运行,那么在内存中的那个程序就被称为进程(process).进程是操作系统上非常重要的概念, 所有系统上面跑的数据都会以进程的形态存在. 那么系统的进程有哪些状态?不同的 ...
- 鸟哥的linux私房菜-基础学习篇 读书笔记
从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...
最新文章
- linux smart服务,RAKsmart Linux美国服务器常用信息命令
- Spring内核研究-通过工厂注入
- pandas教程:series和dataframe
- re.search中与正则表达式*结合使用的注意事项
- 设置oracle 随机启动,配置Oracle单实例随机启动(11gR2)
- address already in use: jvm_bind
- centos6中office及中文输入法安装 (转载)
- 2011年11月27日学习内容总结
- 如何选择云服务器与轻量应用服务器?谈谈自己的看法
- directx修复工具 4.0_A12-A13最稳定越狱工具发布,支持iOS13.0—iOS13.3
- Red5流媒体服务器的搭建与使用
- 单例模式(Singleton Pattern)
- 浅谈智能卡技术在数字电视小额支付系统中的应用
- 使用x264压制视频简介
- linux木马查杀工具,【Kali】linux木马查杀
- 网页编程设计常用的各类标签
- 连接数据库超时设置autoReconnect=true,默认重试次数调整
- java修改mtu值_windows XP系统怎么通过 CMD 系统修改 MTU 值?
- java小程序-画一幅海底世界的图
- (十三:2020.08.28)CVPR 2015 追踪之论文纲要(译)
热门文章
- PHP学习笔记-PHP与Web页面的交互2
- Android之给图片添加涂鸦(文字)
- 海康 安全码 修改密码_手机为什么要设置PIN码 手机设置PIN码的原因【介绍】
- 领结婚证了,新的人生开始了!
- windows上下载redis扩展
- Java数据结构--有序表
- NS2仿真:公交车移动周期模型及性能分析
- 0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)...
- 富有客户端技术之——jQuery EasyUI
- Visual Studio 2005 SP1安装 关键点