目录
1.3 Linux里编辑的文本在Windows中是否可以打开
一、vim编辑器的使用
vim编辑器是Linux里的文本编辑器,维护Linux系统中的各种配置文件
文本编辑器:只能编辑纯文字的工具:相当于Windows里的记事本
最小化安装的系统是没有安装vim的,但是安装了vi
1.1 Windows里好用的文本编辑工具
- 记事本
- 写字板
- sublime:可以写python程序,有语法高亮效果、补齐功能
- notepad++
- pycharm:写python程序、html等
1.2 Linux里较为好用的文本编辑工具
- vi:Linux里字符界面的文本编辑工具
- vim:vi的升级版本。程序员的文本编辑工具:shell、c、python、ruby、php、java等
- emacs
- gedit:图形界面的编辑工具
1.2.1 vi和vim的区别
vim比vi有语法高亮效果、语法补齐功能、命令补齐等
任何Linux系统里都会安装vi编辑器
1.3 Linux里编辑的文本在Windows中是否可以打开
Windows==》.txt是文本文件的默认格式
Linux==》不重视后缀名,不过会遵循一些规定
- Windows打开Linux里的文本文件的时候,换行会有问题,记事本试别vim的换行符不友好。用sublime打开就没有问题。
- vim编辑器可以打开sublime编辑的文本,vim打开记事本编写的文本有乱码问题
【解释】Windows里的记事本默认采用的编码(ANSI)和Linux里的vim编辑器不一样,导致乱码,Linux默认Unicode。编码一样才不会出现乱码。
Unicode:万国码,把全国的文字都统一编码。
utf-8:属于Unicode里的一个分支
1.4 vim编辑器的模式
常用模式:
- 命令模式(默认的模式):光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
- 输入模式(插入模式):用来输入文本,按a或i或o可以进入
- 末行模式
1.4.1 命令模式
- yy 复制当前光标所在行 copy
- #yy 从当前开始往下复制#行,包括当前行
- p 往下粘贴,粘贴到下一行 paste(如果是大写的P就是粘贴到上一行)
- dd 删除当前光标所在行 delete
- #dd 从当前行开始往下删除#行,包括当前行
- dw 删除光标所在单词
- d^ 删除光标到行首
- d$ 删除光标到末尾
- x、del、d 删除光标所在处的字符
- u 撤销上一次的操作 undo
1.4.2 末行模式可以使用哪些操作
- :set nu 设置行号
- :set nonu 取消行号
- :wq 退出且保存
- :w 只是保存,不退出
- :w /root/lianxi 另存到/root/lianxi
- :q 退出,没有修改文本的情况下,可以退出
- :q! 强制退出,修改了文本也可以退出,不保存退出
- :wq! 强制退出并且保存(用于只读文件==》只有root用户可以)
- :x 退出保存
- :x! 强制退出并且保存(用于只读文件==》只有root用户可以)
1.4.3 插入模式
- 按i,命令模式光标在哪里,进入输入模式后,光标就停在哪里 insert
- 按a,命令模式光标在哪里,进入输入模式后,光标往后走一格 after
- 按o,在光标所在行下另起一行进入输入模式,新建一个新行进入输入模式
1.4.4 替换模式
按大写的R(注意!是大写的R,不可以是小写的)
直接输入,会在原来的位置上直接替换。
取消替换:按退格键。(光标必须未挪开刚修改的位置,否则就无法取消)
1.4.5 可视模式
主要用来选择复制区块文本
在命令模式下,使用v或V可以进入可视模块,该模块下粘贴是粘贴在当前行
可视或者可是块模式可以复制或删除一部分单词,选中一部分单词,然后进行操作。
小v 可视模式 visual 选择一部分
大V 可视行模式 VISUAL line 选择行
ctrl+v 可视块模式 VISUAL BLOCK
选中操作:依赖上下左右方向键
【操作】
先把光标挪到要复制的单词的开头 ==》 再按v进入可视模式 ==》 再通过光标选中要操作的部分:呈现高亮则表示选中。 ==》 按y复制 x或者d删除 (或==》 按p粘贴,直接按原来的格式粘贴在光标处)( 或==》 另起一行按o ==》 再按esc(返回命令模式) ==》 再p)
【可视块模式】
按ctrl+v进入后,先选中Linux,再按向下方向键向下选中这一块(和Windows很像)
是按照原来的格式粘贴
1.5 光标移动
1.5.1 命令模式
1.5.2 末行模式
:1 跳至第一行
:50 第50行
:$ 最后一行
1.6 交换文件
swap file 临时文件
vim编辑器的一个故障问题
1.6.1 出现
1.一个文本文件同时被两个程序编辑
【第一个标签】vim lihua.txt输入内容且保存,不关闭
【第二个标签】也vim lihua.txt
【第三个标签】用ls -a可以查看交换文件
.lihua.txt.swp 是隐藏文件,可以删除。一般是和原文件在同一个文件夹下
[root@localhost ~]# cd lianxi/sanchuang/
[root@localhost sanchuang]# ls
lihua.txt
[root@localhost sanchuang]# ls -a
. .. lihua.txt .lihua.txt.swp
2.正在编辑的会话程序突然崩溃==》不是正常退出vim的情况
1.6.2 解决
1.删除 rm -rf .lihua.txt.swp
2.直接按照提示按D
二、练习
/tmp 是Linux里的临时存放文件的目录,任何用户任何程序都可以使用
##练习一
第一题 cd /root/lianxi
第二题 cp /etc/passwd . ==> vim passwd
第三题 :set nu
第四题 光标挪到第5行 输入6yy ==> G ==> p ==> 光标挪到nologin的n 输入dw 【注:英文分割符:空格,标点符号(/ : , .等)】
第五题 输入 :9 ==> 2dd
第九题 2dd ==> G ==> p
##练习二
第二题 :8 ==> 12yy ==> G ==> p
第三题 :w /tmp/mesg.txt
第四题 :set nu ==> :158 ==> G ==> :1
第五题 :wq
三、查找替换
3.1 文件内容查找
在命令模式里使用
末行模式也可以使用,用法基本相同,查找时在开头加上冒号:即可
u 是撤销最近的一次操作 undo
ctrl+r 恢复 redo recover
【注】查找后退出文件再进入会有查找痕迹,如何消除查找痕迹==》查找一个不存在的东西
3.2 文件内容替换
在末行模式里完成
:s 替换 substitute
:s /old/new只替换当前行的第一个字符“old”
:s /old/new/g 将当前行所有的xiaomi替换为redmi
将5到7行的xiaomi'替换为redmi
:%s /xiaomi/redmi/g 将整个文件里所有的行里的xiaomi替换为redmi,需要一个一个确认
:%s /redmi/xiaomi/gc 将整个文件里所有的行里的redmi替换为xiaomi,需要确认
3.3 打开新文件
:e ~/install.log 打开新文件进行编辑
3.4 在当前文件中读入其他文件内容
:r /root/lianxi/company.txt 将该文件导入当前所编辑的文件 read--导入
输入:r company.txt
3.5 制表符
tab键:制表符
默认情况下一个tab键位8个空格
:set ts=4 设置一个tab键等于4个空格 tab size
四、练习
练习三
# 第一题
:r /etc/passwd
# 第二题
:%s /bash/ksh/g
# 第三题
yy --> Esc --> 5p
# 第四题
光标挪到对应位置 ctrl + v --> 选中 --> y --> o --> esc --> p
# 第五题
:w /tmp/vim.txt
五、扩展
5.1 同时编辑多个文件
可以在多个文件之间复制粘贴
:n 切换到下一个文件
:N 切换到上一个文件
:files 查看所有打开的文件
[root@localhost lianxi]# vim bajie.txt wukong.txt shifu.txt
编辑好第一个文件内容后保存,再输入:files,可以显示出打开的的所有文件
输入:n,会切换到下一个文件
输入:N,会切换到上一个文件
5.2tmux
安装好tmux之后,先输入tmux,再ctrl + b,最后shift+"