0%

改变大小写

Vim中使用下面的方法改变文本的大小写。

CTRL键 描述
~ 正常模式:改变光标下的字符的大小写,移动到下一个字符上;如果你继续按下~,你会继续一个个的改变字符直到行的结束;可视化模式:这回改变所有高亮显示的文本
5~ 改变下5个字符的大小写
g~{motion-key} 改变从光标到整个指定移动位置的字符的大小写
g~~ 改变整个当前行的大小写
gUU 改变整个行文本为大写
guu 改变整个当前行的文本为小写
gUaw 改变当前词为大写
guaw 改变当前词为小写
U 可视化模式:改变当前高亮文本为大写
U 可视化模式:改变当前高亮文本为小写
guG 改变从当前位置到文件结束的文本为小写
gUG 改变从当前位置到文件结束的文本为大写

改变Vim颜色

首先查看在Vim编辑器中所有可用的颜色方案。

1
:!ls $VIMRUNTIME/colors

例如:如果你看到在列表中有blue.vim或者evening.vim,你可以改变这些颜色方案,如下:

1
:colorscheme evening

(或者)

1
:colorschmeme blue

颜色高亮搜索结果

当你搜索一个关键词,你可能希望自动高亮所有符合的单词。使用:hlsearch选择。

为了启用搜索结果高亮

:set hlsearch

在设置之后,当你使用/keyword进行关键词搜索时,在当前文件中的所有匹配的关键词汇自动高亮。

描述
:set hlsearch 启用搜索结果高亮显示注意:添加这个到~/.vimrc中永远启用
:set nohlsearch 关闭搜索结果高亮显示
:nohlsearch 清除掉当前的搜索高亮显示

Vim 配置文件

  1. 在使用vim编辑文件的时候,对vim所作的配置全部只是对当前的会话有效,关闭文件后,配置不再有效;

  2. 如果希望对vim的配置永久有效,可以尝试在~/.vimrc中,写入自己的配置文件,也可以将该文件拷贝至不同的Linux 发行版。

对于目前个人账户而言,修改文件为:

操作系统 文件位置
UNIX/Linux $HOME/.vimrc
Windows $HOME/_vimrc

对于系统管理员而言,如果想修改对所有的用户都起作用的配置,可以在如下文件中进行修改。

操作系统 文件位置
UNIX/Linux $VIM/.vimrc
Windows $ VIM /_vimrc

Vim的帮助信息

  • 可以输入:help查看vim提供的内建帮助文档
  • 可以使用*:helpgrep pattern:*使用模式匹配来查找帮助信息,可以使用:cn来查找下一个匹配的模式
  • 可以使用*:help ‘option’*来查找命令:set option的意思
  • 可以使用*:help CTRL+X来查找CTRL+X*命令
  • 可以使用*:help <CTRL+D>*来自动补全要查找的命令

在插入模式下执行一个Vim命令

当你在插入模式下,如果你想执行一个单个Vim命令,你不需要按下切换到命令行模式。

为了在插入模式下执行单个Vim命令。

CTRL-O — 会暂时进入到命令模式

下面是步骤:

  • 在插入模式下输入字符
  • 按下CTRL-O,它会暂时进入到命令模式
  • 按下任何Vim命令(例如,5j跳转到第5行)
  • 执行单个Vim命令之后,自动到返回到插入模式。

Vim的一些基础知识

文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim(vi的增强版本)和nano。vi和vim是Linux系统中最常用的编辑器。

直到Emacs的出现(1984年以后),vi几乎是所有“黑客”所使用的标准UNIX编辑器。

vi编辑器是Unix的世界中一个相当强大的可视化编辑器,vi编辑器是所有Linux系统的标准编辑器,用于编辑任何ASCII文本,对于编辑源程序尤其有用。它功能非常强大,通过使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制和粘贴等操作。

有人曾这样的说过在世界上有三种人:一种是使用Vi的,另一种是使用是Emacs的,剩下的是第三种人。

Vim(就是Vi Improved)是从 vi 发展出来的一个文本编辑器, 是Vi的改进版本。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

为什么使用Vim

跨平台性

无论在Windows,Linux, Solaris, FreeBSD等等操作系统上,以及一些名都 没有听过的系统上,你都可以找到它。这样就保证了你的学习投资的保值性,就拿UltraEdit做对比吧,即使你在UltraEdit上学会灵活运用许多功能,到了Linux上,你在这部分学习投资就没有价值了,你可能需要找其他称手的编辑器,然后再进行学习一些功能。特别在一些古老的大型机上的系统上,即使没有Vim,一般来说,还有Vi的,这样一般简单的操作命令还是可复用的。如果你确定你一直只呆在Windows上可忽略这一点。

开源免费

Vim是开源软件,意味着你可以自由使用,修改,查看它的代码。对于自由查看,修改程序代的保证,有总比没有好。对于盗版软件,你有能力还是不要使用的好。正是这一特性,也是促使我放弃UE,投向Vim的重要原因。如果你对于使用盗版软件蛮不在乎,或你有财力购买正版软件,也可忽视这一条。

支持多种编程语言

Vim是程序员的编辑器,当然对程序员是非常友好的。它对 C,C++, Python, Perl, Tcl, Ruby, PHP等等,以及一大堆我没有听过见过的语言,以语法着色,代码缩进等基本支持,还有一些其他特性。比如,我在编辑XML时,它能提供自动封闭标记的支持。因此如果你有对多种格式的文本编辑需要,那么你就有了一个编辑的大平台,不需要再装一大堆针对某个格式特定的编辑器了。正如跨平台性一样,你只要一次投资,多次回报。如果你专注于某一格式文件的工作,那这一点同样对于你来说是没有用的。

高效地编辑

Vim的操作方式相对于Windows上呆久了的人来说,是蛮奇特的,这一点我深有体会。但是正如很多人讲的那样,你掌握了其操作后,发现它会大大增进你的编辑速度。你的双手根本不用离开键盘,就完成了许多事情,可以让鼠标歇会儿了。如果你特别钟爱鼠标,或只偶尔打打字,那么我说的这点,同样对你没有用。

灵活的设置

vim可自定义的地方太多了,你可以自定义键盘映射,语法着色,缩进,格式等等。所以你在网上可以看到许多人贴着自己的vimrc配置文件,配置自己喜欢的作业环境。如果你需要开盒即用的工具,那么这点对你的吸引力就不大了。

vim 插入操作

vim在每行行首或行尾添加/删除内容

在每行行首添加相同的内容:

1
:%s/^/要添加的内容  

在每行行尾添加相同的内容:

1
:%s/$/要添加的内容  

使用vimtutor来练习

在安装vim的时候都会附加地安装上vimtutor,这个程序是用来一步一步地学习vim编辑器的。

可以使用vimtutor直接打开教程,当然也可以通过加上后缀来打开其他语言的教程,比如vimtutor fr是法语的,vimtutor es是西班牙语的。

放空一下自我 free

**free**这个命令在Linux系统监控的工具里面,算是使用的比较多的一个。

使用_man_查看可知,官方含义为:

Display amount of free and used memory in the system

也就是显示可用、易用的系统内存,它直接读取/proc/meminfo文件。

默认的效果

先看下不加任何参数的时候,free的效果:

1
2
3
4
$ free
total used free shared buff/cache available
Mem: 32664832 15667736 674136 464892 16322960 15803156
Swap: 16449532 3039756 13409776

看起来很多的样子,但是不直观,我比较喜欢加上-h参数。

使用易读的参数

-h参数,跟前面的df等命令类似,此处的h表示_human being_的含义方便人类阅读。 除了这个还有_-b,-k,-m,-g_,含义分别为按照_字节、KB、MB、GB_的格式来显示。

1
2
3
4
5
$ free -h
total used free shared buff/cache available
Mem: 31G 14G 655M 453M 15G 15G
Swap: 15G 2.9G 12G

Wow,此时的显示简直好简洁。

说下其中的含义:

  • total : 表示总的物理内存大小,比如上面的就表示31GB的内存

  • used :表示已经使用的内存大小,比如上面的就是使用了14GB

  • free :表示可用多少

  • shared:表示多个进程共享的内存大小

  • buff/cache:表示磁盘缓存的大小,这里有两个方面,buffcache,两个的含义不同

    • buff :something that has yet to be ‘writeen’ to disk ,还没有写入磁盘
    • cache: something that had been ‘read’ from the disk and store for later user,从磁盘读取的方便下一次使用
    • 这里就设计到Linux的设计哲学,比如读取一个100G的文件,第一次所使用的时间总归是后面再次读取的时间的好几倍,当然前提是没有释放掉caches
  • available:当然含义为可用的内存容量大小

间隔显示内存状态

还有一个比较常用的就是,如果你希望过一段时间就看下free的情况,OK,使用参数-s,后面跟的单位是秒,也就是每个几秒,统计一下使用的内存情况,比如我们每个2s,显示一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ free -s 2
total used free shared buff/cache available
Mem: 32664832 15668528 670964 464892 16325340 15802360
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15669760 669724 464892 16325348 15801124
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15670220 669248 464892 16325364 15800652
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15669264 670204 464892 16325364 15801624
Swap: 16449532 3039756 13409776

查看meminfo文件

1
$ cat /proc/meminfo

其实free读取的就是这个文件的某些信息,可以通过同步监控这个文件来check free的状态。

Linux 查看系统内存

**free**这个命令在Linux系统监控的工具里面,算是使用的比较多的一个。

使用_man_查看可知,官方含义为:

Display amount of free and used memory in the system

也就是显示可用、易用的系统内存,它直接读取/proc/meminfo文件。

默认的效果

先看下不加任何参数的时候,free的效果:

1
2
3
4
$ free
total used free shared buff/cache available
Mem: 32664832 15667736 674136 464892 16322960 15803156
Swap: 16449532 3039756 13409776

看起来很多的样子,但是不直观,我比较喜欢加上-h参数。

使用易读的参数

-h参数,跟前面的df等命令类似,此处的h表示_human being_的含义方便人类阅读。 除了这个还有_-b,-k,-m,-g_,含义分别为按照_字节、KB、MB、GB_的格式来显示。

1
2
3
4
5
$ free -h
total used free shared buff/cache available
Mem: 31G 14G 655M 453M 15G 15G
Swap: 15G 2.9G 12G

Wow,此时的显示简直好简洁。

说下其中的含义:

  • total : 表示总的物理内存大小,比如上面的就表示31GB的内存

  • used :表示已经使用的内存大小,比如上面的就是使用了14GB

  • free :表示可用多少

  • shared:表示多个进程共享的内存大小

  • buff/cache:表示磁盘缓存的大小,这里有两个方面,buffcache,两个的含义不同

    • buff :something that has yet to be ‘writeen’ to disk ,还没有写入磁盘
    • cache: something that had been ‘read’ from the disk and store for later user,从磁盘读取的方便下一次使用
    • 这里就设计到Linux的设计哲学,比如读取一个100G的文件,第一次所使用的时间总归是后面再次读取的时间的好几倍,当然前提是没有释放掉caches
  • available:当然含义为可用的内存容量大小

间隔显示内存状态

还有一个比较常用的就是,如果你希望过一段时间就看下free的情况,OK,使用参数-s,后面跟的单位是秒,也就是每个几秒,统计一下使用的内存情况,比如我们每个2s,显示一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ free -s 2
total used free shared buff/cache available
Mem: 32664832 15668528 670964 464892 16325340 15802360
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15669760 669724 464892 16325348 15801124
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15670220 669248 464892 16325364 15800652
Swap: 16449532 3039756 13409776

total used free shared buff/cache available
Mem: 32664832 15669264 670204 464892 16325364 15801624
Swap: 16449532 3039756 13409776

查看meminfo文件

1
$ cat /proc/meminfo

其实free读取的就是这个文件的某些信息,可以通过同步监控这个文件来check free的状态。