vi/vim编辑器

附录

1.swp文件报错的原因

1、多人同时操作
2、上次编辑异常退出,没wq保存
.swp文件是存储在内存中的临时文件,vim文件就产生,保存退出就消失。
处理方式:
保留修改:r
不保留:d

2、配置

Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrc。

如果只对单次编辑启用某个配置项,可以在命令模式下,先输入一个冒号,再输入配置。举例来说,set number这个配置可以写在.vimrc里面,也可以在命令模式输入。

:set number
配置项一般都有"打开"和"关闭"两个设置。“关闭"就是在"打开"前面加上前缀"no”。

" 打开
set number

" 关闭
set nonumber
上面代码中,双引号开始的行表示注释。

查询某个配置项是打开还是关闭,可以在命令模式下,输入该配置,并在后面加上问号。

:set number?
上面的命令会返回number或者nonumber。
如果想查看帮助,可以使用help命令。

:help number

vi 和 vim编辑器

所有的 Linux 系统都会内建 vi 文本编辑器,只能运行于unix中.
Vim 可以看做是 Vi 的增强版本,字体高亮,代码补全、编译及错误跳转等方便编程的功能特别丰富.vim不仅可以运行于unix,还可用于windows、mac等多操作平台.比vi多一个Visual-mode.

vi 和 vim 的三种常见模式

在这里插入图片描述

Normal-mode

可以使用快捷键,是默认的模式。

h: 左
l: 右
j: 下
k: 上
?h:移动?个字符
w: 移至下一个单词的词首;
e: 跳至当前或下一个单词的词尾;
b: 跳至当前或前一个单词的词首;
?w: 移动?个单词
0: 绝对行首;
^: 行首的第一个非空白字符;
$: 绝对行尾
?G:跳转至第?行;
gg: 第一行;
G:最后一行
Ctrl+f: 向下翻一屏;
Ctrl+b: 向上翻一屏;
Ctrl+d: 向下翻半屏;
Ctrl+u: 向上翻半屏
yy:复制当前行
nyy:复制当前行至下面的n行
p(小写):粘贴到光标的后面
P(大写):粘贴到光标的前面
x: 删除光标所在处的单个字符;
?x: 删除光标所在处及向后的共?个字符;
d$或D:从当前光标处删除至行尾;
d^:从当前光标处删除之行首;
dd: 删除当前光标所在行;
dG: 删除光标所在位置到全文结尾
?dd: 删除包括当前光标所在行在内的?行;
#dd相当于剪切操作,如果你dd之后按p或者P可以进行粘贴。
剪切当前行cc,连续删n行cnc
r:替换单个字符(按完r在按你要替换的字符即可)
R:替换多个字符(从你要替换的位置开始替换,直至你退出正常模式)
u:撤消前一次的编辑操作;
Ctrl+r:反撤销
?u:直接撤消最近?次编辑操作;
#温馨提示:连续u命令可撤消此前的n次编辑操作

将另外一个文件(/path/sunhui.txt)的内容填充在当前文件夹中
:r   /path/sunhui.txt :填充到当前文件所在光标的后面

vim   ~/.vimrc:修改当前用户的vim配置文件
vim    /etc/vimrc:修改所有用户的vim配置文件
在正常模式下按组合键shift zz可以保存并退出
ciw 删除当前处的词,并进入 插入模式
块级删除「常用」di* da*
di" 删除" 内的内容,个人感觉这个还是非常常用了。也是初步在效率上优于传统的 intellj idea 的操作方式。如果想要删除之后马上进入插入模式 可以使用 ci"
di( 删除( 内的内容,如果想要删除之后马上进入插入模式 可以使用 ci(
% 括号匹配跳转 () [] {}
* 跳转到上一个字符的定位处
H | M | L
H 移动到当前页的第一行
M 移动到编辑器中部
L 移动到当前页的最后一行

input mode

i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转为输入模式;
A:在当前光标所在行的行尾,转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;
s 删除当前字符,并进入插入模式
S 删除当前行中的所有文本,并进入插入模式

Command-mode

:w 文件a			将该文件内容另存到a中,a不存在的话会自动创建
:q        			退出;
:q!       	 		不保存退出;
:w       			保存;
:w!       			强行保存;
:wq        			保存退出
:wq!        		强制保存并退出
.: 表示当前行;
$: 最后一行;
?:第?行;
+?: 向下的?行
:set    nu         显示行号
:set    number   	显示行号
:set    nonu       取消显示行号
:set paste 			启用粘贴模式(有时候复制内容进来会丢失格式,该模式会保存格式)

在这里插入图片描述

set  ruler		在状态栏显示光标的当前位置(位于哪一行哪一列)
set wrap	自动折行,即太长的行分成几行显示
set nowrap	关闭自动折行
set showcmd		命令模式下,在底部显示,当前键入的指令。比如,键入的指令是2y3d,那么底部就会显示2y3,当键入d的时候,操作完成,显示消失。
set tabstop=2  按下 Tab 键时,Vim 显示的空格数。
set mouse=a		支持使用鼠标,就是说可以用鼠标直接定位,不用上下左右一格一格移动了
set relativenumber	显示光标所在的当前行的行号,其他行都为相对于该行的相对行号
set cursorline	当前行加个下划线
set incsearch	输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set encoding=utf-8  使用 utf-8 编码
set ignorecase	搜索时忽略大小写
set nobackup	不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(〜)
set noswapfile	不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp。
set smartcase	如果同时打开了ignorecase,那么对于只有一个大写字母的搜索词,将大小写敏感;其他情况都是大小写不敏感。比如,搜索Test时,将不匹配test;搜索test时,将匹配Test
set spell spelllang=en_us	打开英语单词的拼写检查
set autoindent 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。
#设置语法高亮
1、vim根据文件后缀判断是否默认高亮
2、vim根据文件头声明比如html和sh文件(#!解释器 如python,bash)
:syntax    on    	开启
:syntax    off   	关闭
#分屏
:vsp xxx.x    		将两个文件垂直分屏
:ctrl+w w    	 	切屏
:5,7d            	删除指定范围行
:/?					查找关键字,n下一个,shift+n上一个
:noh 				取消关键字高亮,本次回话后面还会高亮
set hlsearch	搜索时,高亮显示匹配结果
set nohlsearch	取消关键字高亮,本次回话后面每次搜索都不高亮了
set incsearch	输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
:s/源内容/目标内容/   替换光标所在行第一个
:s/源内容/目标内容/g  替换光标所在行所有
:%s/源内容/目标内容/g  全局替换

vim特色vitual-mode

v 					进入字符可视模式
V 					进入行可视模式
Ctrl+v 				进入块可视模式
进行批量操作,选中的区域可以用vim命令直接操作。添加内容的话要用shift+i|a|o

idea 使用vim

在 Intellj Idea 中 安装以下三个插件
IdeaVim
IdeaVim-EasyMotion
IdeaVimExtension

配置win或mac使用vim

永久保存设置,需要在用户根目录下创建.vimrc文件,将配置写进去,这个配置文件网上有很多现成的可以参考
vim ~/.vimrc
安装vim插件管理程序
https://github.com/junegunn/vim-plug
到这里选择系统可用的下载安装命令,在命令行安装
安装后在系统目录会有.vim文件夹.里面有个autoload文件

安装插件则进入https://vimawesome.com/plugin
选择要下载的插件
然后进入.vimrc文件写入
call plug#begin()
Plug ‘scrooloose/nerdtree’
call plug#end()
然后再命令模式:PlugInstall就回分屏显示下载进度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值