作者:MwMw在不在_669_301_603 | 来源:互联网 | 2023-09-24 10:05
本文主要介绍关于linux,vim,gvim,vi,IC的知识点,对【【Linux】(vi、vim)gvim的使用学习】和【】有兴趣的朋友可以看下由【仰天倀笑】投稿的技术文章,希望该技术和经验能帮
本文主要介绍关于linux,vim,gvim,vi,IC的知识点,对【【Linux】(vi、vim) gvim 的使用学习】和【】有兴趣的朋友可以看下由【仰天倀笑】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的数字IC与芯片相关技术问题。
Title: gvim学习
前言
实习后发现都是用 linux的;用linux很少在IDE里编程而是直接用 vim 进行编程。
由于vim太丑,在初期我都倔强的用gedit;后来同事说,你得学着用vim,这样才显得专业 ( ̄▽ ̄)"…
随着vim快捷键逐渐熟悉,慢慢明白vim的方便之处了~
一般都用 gvim,好看点.
1 介绍
是什么
vim是linux里的文本编辑器,但是比“记事本”(linux里是gedit)多了很多功能,而且支持很多功能、命令、快捷键,用熟了以后会大大提高文本编辑的便捷性。
特点
vim里进行文本查看、编辑是不同的模式:命令行模式(仅查看、输入各种功能命令)、编辑模式.
在 编辑模式,和gedit是一样的,写文本;
在 命令行模式,可以使用vim提供的各色功能,方便的完成自己想要实现的目的——正则表达式的字符串替换、查找、分屏等。( ̄▽ ̄)"
在
命令行模式,分成
直接按键盘字母(大写小写功能不同)来使用快捷键功能、输入冒号:
加指令来启动指令功能,两种办法,
另外,除去vim下的 命令模式(command-mode)、插入模式(insert-mode),vim还有 正常模式(normal-mode)——啥也没选中的正常情况、可视模式(visual-mode)——选中了一些文本的高亮情况,感觉专门称呼为一个"mode"有点随便哈…
vi、vim、gvim的关系
vi是早期版本,功能有限;
vim是vi的功能丰富、特性增强版;
vim中加入gui以及更多的特性功能,就产生了gvim;
本篇全文都默认是gvim哈!
如何安装 gvim
?
用 apt-get install vim-gtk
2 快捷键一栏图 Vim 的快捷键一栏图
网图1
网图2
3 个人使用习惯 3.1 最基础+最核心
记住加粗的就行了…
进入文本编辑模式
按 i
,从此行开始编辑;
还有别的按法,如I
,此行非空位置开始写;;
o
,在下一行换行开始写新的一行;
O
,从上一行换行开始写新的一行;
a
,从下个字符开始写;
A
,从此行末尾开始写;
r
,进入replace mode,但只覆盖后面1个字;
R
,进入replace mode,一直覆盖后面的字;
退回到命令行状态
按 Esc
.
保存 —— :w
强制保存 :w!
:w filename
另存为;
:file1,file2 w [file3]
文件合并为…
追加文件 :r file
关闭文件 —— :q
强制退出不保存 :q!
,也可以用 ZQ
保存后退出 :wq
,也可以用 ZZ
撤销是u
;重做redo是ctrl+r
复制是y
,或者ctrl+c
;粘贴是"鼠标中键",或p
(但p
仅限于此文本内复制内容进行粘贴,“鼠标中键”支持跨文本粘贴);
s
是剪切;
跳转到文本第一行 gg
跳转到文本末尾 G
跳到第几行 :lines
查找 /内容
然后按 n
,是下一个;
按N
,是上一个;
按两下'
,回到上一次跳转的位置(来回跳);
/str\c
表示不区分大小写.
自动补全
向上查找来补全:ctrl+p
向上查找来补全:ctrl+n
3.2 Vim的显示格式设置
每次设置太麻烦了,可以在~/.vimrc
中写,每次打开vim会自动执行;.vimrc
中的注释用"
;在.vimrc
中配置vim显示格式的话,就不需要敲冒号:
了~
显示行号 :set nu
取消显示行号 :set nonu
要是打全,nu写number也行.
换主题 :colorscheme 款式
我比较喜欢 desert
款式,( ̄▽ ̄)"
没有set哈…
改字体和大小 :set guifOnt=款式\风格\大小
默认字体是 :set guifOnt=Monospace\\10
,风格就是加粗、斜体什么的.
我个人喜欢 :set guifOnt=Monospace\\13
,不然要瞎了…
识别当前语言类型为C语言来高亮 :set syntax=c
但这个没啥用,因为其他语言需要自己网上下好高亮的语法配置文件…
设置缩进的宽度
:set tabstop=4
:set shiftwidth=4
默认是8.
高亮当前行(找光标也方便)
:set cursorline
3.3 阅读文本的小习惯 双击括号的一边,如:
{
、
}
,可以直接跳转到另一边;可以用右键,来选中文本;
选中文本后,即为进入 vim的visual mode,此时
按 shift + v
可以选中目标的全行;按ctrl + v
可以选中目标的全列; 3.4 Vim的重要使用技巧⭐️
vim分屏
在vim内,用 :sp filename
实现上下分屏,用:vsp filename
实现左右分屏;
用 ctrl+w, r
实现上下分屏的位置互换;
用 ctrl+w,w
实现光标轮流到下一个分屏;
用 ctrl+w,s
实现在当前文本内进行分屏;
光标的移动,用ctrl+w, ↑
去上分屏,去其他方向则同理;
关闭此窗口,用ctrl+w, c
,c是close;如果是ctrl + q
还有退出vim的作用。
关闭其他窗口,只保留此窗口,用ctrl+w,o
,o是only;
统计一个文档中某个字符串出现多少次
:%s/string/&/gn
# string is what I want to search
搜索字符串时,关闭大小写敏感
/内容\c
,主要是后面这个\c
,原来是这个意思…( ̄▽ ̄)"
复制粘贴相关
y
是复制;p
是粘贴;
yy
是复制一行;
dd
是删除一行;
3.5 Vim 下的正则
前言
vim下的正则和perl内有不同,只能说相近吧,使用时注意…
此网站不错:vim Regular Expressions
基本格式
正则表达式中,/
是表达式分界符,也可以用 #
、?
代替,其内夹着个正则表达式;
末尾加i
表忽略大小写、g
是全局匹配、m
是多行匹配。
重要特点
vim的正则表达式语法和perl等有些许不同,其次有个重要特点,分成了四个mode: magic mode, very magic mode, no magic mode, very nomagic mode;啥意思呢,是这样的:
vim里的正则有个特点,很多“元字符”都是需要“手动转义”后才能具有正则的含义,只有最常用的——^
表行首、$
表行尾、 .
表1个任意字符、*
表任意数量的前者字符——它们俩是不需要加转义符\
的,就很麻烦。这就是vim正则表达式的默认正则模式:magic mode. 手动声明,就是在正则表达式前加前缀\m
例子:查找以 “str0"或"str1” 开头的串,正则为 /\m\
(其中
\m
可省略…)
那如果你的正则表达式语法熟练,又要用到很多元字符,一个个加转义符号超级烦,可以使用 very magic mode,在正则表达式前加前缀\v
例子:查找以 “str0"或"str1” 开头的串,正则为 /\v
对比一下magic mode,发现区别了吧~( ̄▽ ̄)"
所有元字符除了^
、$
外,都按文本来翻译,就是 nomagic mode,在正则表达式前加前缀\M
只有反斜杠\
才表示转义,不然统统当文本处理的正则mode,是是 very nomagic mode,在正则表达式前加前缀\V
详细可以参见此blog:VIM学习笔记 4种Magic模式 —— 知乎 YYQ
通用的正则元字符与转义字符
^
$
<
>
\b
\d
\D
x?
x*
x+
x{
n}
x{
n,m}
(a|b|c)
(x)
.
\s
\S
\w
\d\D
\s\S
\n
\r
\t
\f
?!pattern
?!<pattern
?=pattern
?<=pattern
?i
?-i
vim下特有的正则元字符与转义字符
\a
\A
\i
\I
\u
\U
\x
\X
\c
\C
方括号[] 、圆括号()、花(尖)括号{} 的区别
方括号表示一个字符的可能:[0-3],这1个字符可以是0~3之间的任意一个数字;[(a)],表这1个字符可以是 ‘(’ 或 ‘a’ 或 ‘)’.
圆括号可表一个连续串的可能:(abc|efg|kkk),要么匹配到连续串abc、要么是efg、要么是kkk;(abc)?,表示要么匹配到完整的连续串abc,要么算了;
花(尖)括号 表示重复次数:{n,m}
贪婪匹配 和 懒惰匹配
同一个正则表达式,基于贪心(匹配越长越好)、懒惰(越短越好)效果不同,实施时的区分方式为:
懒惰:在元字符后加?
;
贪婪:不加?
;
3.6 Vim下的文本替换 替换的基本使用
:s
,s是subtitute的意思,有 “只在此行”替换、“全文替换” 两种用法。
:s #只在此行替换
:s/str1/str2/ #在此行把str1换成str2; (只替换首个)
:s/str1/str2/g #在此行把str1换成str2; (替换所有)
:i,js/str1/str2/g #i到j行内,把str1换成str2; (替换所有)
:%s #替换全文
:%s/str1/str2/g #全文替换,把str1统统换成str2;
3.9999 好的例子(个人用到的) 把长空格都变成换行
\v {
1,}/\r/g
自定义格式化文本高级替换
从第i行到文本末尾,把 “str” 文本内容替换为 “…str…”,一行有多个就全换.
:i,$s/str/\=printf("...%s...", submatch(0))/g
本文《【Linux】(vi、vim) gvim 的使用学习》版权归仰天倀笑所有,引用【Linux】(vi、vim) gvim 的使用学习需遵循CC 4.0 BY-SA版权协议。