标签:文件 删除 编辑 vi 模式 命令 编辑器 Linux
##################################################
2019年11月18号继续学习----vi编辑器,预计花费一天的时间,
vi编辑器简介
- 这是文本的编辑器,后面多次用到了这个命令,导致我不会,验证影响了我的进度
- vi是Linux中最经典的文本编辑器,为什么使用这个,就是速度快,
- vi的核心设计思想,让程序员的手指始终保持在键盘的核心区域,就能完成所有编辑操作
- vi只能编辑不能排版,没有图像界面
- vi不支持鼠标操作,没有菜单,只有命令,
- vim是从vi发展出来的,有代码补全,等功能,被称为编辑器之神,
- 程序员都是首选vim,在Linux中直接把vi做成了vim的软连接,你使用vi命令就是使用的vim
vi打开新建文件:
- vi 文件名 ,文件存在就是打开,不存在就是新建,vi hello.py
- vi 文件名 +行数,打开文件并且定位行,
- 异常处理,如果vi异常退出,在磁盘上可能会有保持的交换文件,下次在使用vi时,会看到发现交换文件,按d可以删除交换文件,注意输入的时候关闭输入法,
- 在vim格式未保存时退出,或者两台机器同时操作一个文件时都会出现这个问题(报存在一个swap文件)
- 看看当前的文件内容是不是原先的内容,如果觉得和你想要的差不多不需要恢复,那就直接执行rm指令删除那个swap文件
- 执行这个操作不会对你现在的文件产生影响。如果内容变化较大,你想要恢复,那就按 :q
工作模式
- 有三种工作模式,这个很重要,
- 命令模式,使用vi命令打开一个文件,就是命令模式,
- 命令模式下,可以进行常规的操作,比如定位,翻页,复制,粘贴,删除,
- 在其他的图形编辑器下都是鼠标操作的,但是vi是通过命令的,
- 末行模式,执行保存,退出等操作,
- w就是write,写入的意思,保存,
- q就是退出,quit的意思,退出,
- 末行模式是出口,命令模式就是入口,
- 怎么进入出口,就是输入冒号:,进入末行模式,
- 从末行模式到命令模式,按一下esc就进入命令模式
- 编辑模式,正常的编辑文字,
- 输入字母i,insert,就进入了编辑模式,不能使用鼠标,其他基本一样,
- 按esc返回命令模式,在命令模式可以快速定位,在编辑模式只能上下键定位代码,
- 编辑模式到命令模式,命令模式到末行模式,编辑模式不能直接到末行模式,
- 现在基本可以操作了
工作模式练习:
- 文件改完之后用命令q和wq和!w都不能退出来!上网一查才发现原来vi命令在直接用vi+enter进入文件的时候这些命令退出不了,
- 解决方法:直接用ctrl+z退出就行了
- .test.py.swp .test.py.swo,这种文件都是不正常退出文件导致的交换文件,这些可以使用rm直接删除,
- 末行模式的命令
- :w 保持
- :q 退出
- :wq 保持退出
- :q! 强行退出,不保存退出,这也是比较常用的,比如修改错了,
- :x 这也是保持退出
常用命令:
vi非常强大,命令非常多,不要期望一下子都记住,
要按照使用频率学习,使用vi命令的时候,
命令线路图
- 重复次数,输入一个数字,跟上一个命令,就可以重复执行指定次数,
- 移动和选择(多练),这个比较多,
- 编辑操作,删除,复制,粘贴,替换,
- 撤销和重复
- 查找和替换
- 编辑
- 注意关闭中文输入法,因为输入vi命令的时候是没有显示的,
移动命令
- 上下左右的移动,h向左,j向下,k向上,l向右
- 行内移动,w 向前移动单词,b先后移动一个单词,0立刻到行首,$立刻到行尾,^到行首,第一个不是空白字符的位置,
- 行数移动,gg 文件顶部,G文件末尾,数字gg,移动到指定行数,数字G移动到指定行数,:数字,移动到对应行数,一般都是还是用go,
- 屏幕移动,ctrl+b,向上翻页,ctrl+f,向下翻页,H屏幕顶部,M屏幕中间,L屏幕底部,
- 段落移动, {这是往上寻找段落,}这是往下寻找段落,这是比较常用的切换方式
- 括号切换,小括号,方括号,花括号,都是程序员常用的,可以使用百分号%切换括号
- 如果有代码需要随后处理,需要参考别的代码,把编号移走,到时候怎么回来呢,可以使用标记,可以使用m 输入一个字母,然后移动光标,怎么胡来输入单引号,然后输入直接的标记的字母 ‘k,不用管标记如何删除,相同的会覆盖,删除行标记也会删除,不用管,
- 选中命令,要复制要先选中,可以使用v,切换到可视模式,V 切换到可视行模式,ctrl+v,可视块模式,可以竖着选,很厉害,
- 可视模式下,可以使用移动命令,快速选中文本,
编辑命令
- u,undo,撤销上次的命令,可以不停的回撤,到最初的命令
- ctrl+r,就是恢复撤销的命令,
- 这两个非常的重要,保命的命令,
- 删除命令
- x 删除光标所在的字符,或者选中的字符,
- 5+x,这就是删除5个字符,
- d 需要和移动命令结合在一起用,删除选中的文本,
- dd 可以把光标所在的行删除
- D,可以删除至行尾,
- 删除命令可以结合移动命令使用,所以移动命令很重要,
- 复制和粘贴的命令
- y 复制,copy的英文,
- yy 复制一行,可以myy复制多行
- p粘贴 paste,,5+p,就是粘贴的内容复制5次,
- 注意1:删除命令,本质就是剪切, 可以再复制回来,比如dd,删除一行,p,就复制回来了,
- 注意2:如果在其他软件复制的内容,你在命令模式p粘贴是不行的,要i,进入编辑模式,点击右键粘贴就对了,按esc就可以返回命令格式了,
- 替换命令
- 如果修改一个单词,就可以使用替换命令,比较快,否则就是i进入编辑模式,然后修改,然后esc,才可以,
- r,替换当前字符,输入r,然后输入H,这样就会把当前字符替换成大H了,
- 如果是使用编辑模式呢,要输入i,然后删除,然后大写输入,然后esc退出编辑模式,
- R,替换当前行光标后的所有内容,
- 缩排和重复执行命令
- 缩排就是缩进,空格越少级别越高,
- >> 这是向右缩进
- << 这是向左移动代码
- . 重复上次的操作,
查找
- /str 查找str
- n查找下一个
- N查找上一个
- * 单词快速匹配,这是向上寻找,
- # 单词快速匹配,这是向下寻找,
####################################################
学到这里发现原来没有装vim,一直用的vi,我说为什么感觉不舒服,不要慌,今天就这一件事,就是搞定这个vim编辑器的问题,
vim是LINUX系统必备啊
安装:sudo apt-get install vim
配置:sudo vim /etc/vim/vimrc,在这个里面进行配置,已经配置好了,具体的后面用到了上网络查,set hlsearch,这是设置查询内容高亮显示,
#########################################################
查找和替换:
- :%s///g,这就是替换的格式,
- 全局替换
- :%s/旧文本/新文本/g,,这是全局替换,:%s/hello/world/g
- 可视区域替换
- 可视区域范围内的替换,这样可以控制开发的风险,
- 先选中,然后:s/旧文本/新文本/g,只是没有百分号,这就是可视区域替换
- 确认替换,
- 这是推荐使用的方式,
- :%s///gc,confirm确认的意思,
- (y/n/a/q/l/^E/^Y)?yes,no,all替换所有,q退出,只需要记住前四个
- 而且这个是每一个替换都要确认,
进入编辑命令的方式:
- 之前讲了一个i,
- o小写,在光标上方插入一个空行,O,
- O大写,在光标下方插入一个空行,
- I大写的i,可以在行首插入,
- a当前字符后添加文本,这个用的少,
- A,这个是在行尾进入编辑模式,这个用的多,
- 编辑和数字是可以连起来用的,
- 1,输入10,表示重复10次
- 2,输入i进入编辑模式
- 3,输入*,也就是重复的文字,
- 4,按下esc,返回命令模式,返回之后,vi就会把2,3两步重复10次,
- 所以在编辑之前不要随便输入数字,会重复的,
- 利用可视块,对多行代码添加注释,
- 1,移动到需要增加注释的第一行代码,按^来到行首
- 2,ctrl+v,进入可视块模式
- 3,输入大I进入编辑模式,并在行首插入,
- 4,输入#,也就是注释
- 5,按下esc回到命令模式,返回之后会在选中的每一行添加#号了,
分屏命令:
- 末行命令拓展,
- e.,在末行模式,输入e,会打开内置的文件浏览器,浏览当前目录下的文件,edit
- 找到文件,然后回车,就到了另一个文件了,注意,这个时候一定文件要保存,
- 在末行模式,e 文件名,直接到了另一个文件,不知道文件名,就是e. 点,
- 这样可以不用退出vi,就可以继续编辑另一个文件了,
- :n 文件名,这是新建一个文件,
- :w 文件名 ,这是把当前编辑的文件全部写入一个文件,当前编辑的文件不会切换,
- w,为什么要这么设计?可以阶段性的备份代码,
- 分屏命令练习
- sp 文件名,横向增加分屏
- :vsp 文件名,纵向分屏
- ctrl+w,这是快捷键
- r,互换窗口
- c 关闭窗口,
标签:文件,删除,编辑,vi,模式,命令,编辑器,Linux 来源: https://www.cnblogs.com/andy0816/p/12486045.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。