vim使用教程

 目录

vim简介

vim工作模式

光标移动

 文件插入操作

文本删除


vim简介

vim是一款功能强大,高度可指定的文本编辑工具。vi是visual  interface的简写,vim是 Vi  IMproved的简写。

vim的安装命令:

sudo  apt-get install vim

如果安装不了,可以输入以下指令更新下数据:sudo apt-get update。然后再次输入以下指令进行安装:sudo apt-get install vim。

vim工作模式

普通模式:

                vim打开一个文件时默认模式

插入模式:

                 敲击键盘上的  i ,o,a  进入该模式,敲击ESC键退出该模式

 命令行模式:

                  敲击键盘上的    进入该模式

                  在该模式下输入set num可以显示行号,同时命令可以保存/etc/vim/vimrc配置文件 

可视化模式:

                   敲击键盘上的  v 进入该模式,然后移动光标就可以选中文件。

替换模式:

                   敲击键盘上的 R 就可以进入到替换模式   

光标移动

单个字符移动:

           h:向左移动

           l:向右移动

           j:向下移动

           k:向上移动

如果需要向左移动10个字符,可以敲击 10+h。

单词移动:

           w:将光标移动到下一个单词开头

           b:将光标移动到前一个单词的开头

           e:将光标移动到下一个单词的末尾

           E:移动到单词的结尾(忽略标点符号)

           ge:将光标移动到上一个单词词末

           2w:指定移动的次数

 行移动:

           ¥:将光标移动到当前行的末尾

            0:将光标移动到当前行的行首

            ^ :将光标移动到当前行的第一个非空字符(行首和当前行非空字符不是一个位置)

            2|:  移动当前行的第2列

            fx:将光标移动到当前行的第一个x字符上

            3fx:将光标移动到当前行的第三个x字符上

            tx: 将光标移动到目标字符上

            %:用于符号间的移动,它会在一对(),【】,{}之间跳跃

    在屏幕中移动:

            xG:跳转到指定的第x行, G移动到文件末尾,··或者单引号返回到跳转前的位置

            gg:移动到文件开头

            x%:移动到文件中间,就使用50%

            H:移动到home

            M:移动到屏幕中间

            L:移动到一屏末尾

            ctrl+G:查看当前的位置状态

滚屏与跳转:

            半屏滚动:ctrl + u/ctrl +d

            全屏滚动:ctrl+ f/  ctrl +b

   定位光标的位置:

             zz:将光标置于屏幕的中间

             zt:将光标移动到屏幕的顶部

             zb:将光标移动到屏幕的底部

设置跳转标记:

             mx,my,mz设置三个位置

              `x,`y,`z跳转到设置

 文件插入操作

i:在当前光标的前面插入字符

a:在当前光标的后面插入字符

o:在光标的下一行插入字符

u:撤销修改

I:在一行的开头添加文件

A:在一行的结尾处添加文本

O:在光标当前行的上一行插入文本

s:删除当前光标处的字符并进入到插入模式

S:删除光标所在处的行,并进入到插入模式

文本删除

字符删除:

             x:删除当前光标所在处的字符

             X:删除当前光标左边的字符

单词删除:

             dw:删除一个单词(从光标处到空格)

             daw:无论光标在什么位置,删除光标所在的整个单词(包括空白字符)

             diw:删除整个单词文本,但是保留空格字符不删除

              d2w:删除从当前光标开始处的2个单词

               d¥:删除从光标到一行末尾的整个文本

                d0:删除从光标到一行开头的所有单词

                 dl:删除当前光标处的字符 

                 dh:删除当前光标左边的字符

行删除: 

                 dd:删除当前光标处的一整行

                 5dd:删除从光标开始处的5行代码

                 dgg:删除从光标到文本开头

                 dG:删除从光标到文本结尾

  行合并:

                  J:删除一个分行符,将当前行与下一行合并

文本复制,剪切与粘贴

y:复制  p:粘贴

yw:复制一个单词

y2w:复制2个单词

y$:复制从当前光标到行结尾的所有单词

y0:复制当前光标到行首的所有单词

yy:复制一整行

2yy:复制从当前光标所在行开始的2行

复制文本块:

1.首先进入visual模式:v键

2.移动光标选择文本

3.复制与粘贴的操作:p键

文本修改与替换

cw:删除从光标处到单词结尾的文本并进入到插入模式

cb:删除从光标处到单词开头的文本并进入到插入模式

cc:删除一整行并进入到插入模式

 ~:修改光标下字符的大小写

r: 替换当前光标下的字符

vim配置与vimrc配置文件

vi与vim的关系

vi是什么?

       ---Visual interface的简写

       ---是行编辑器EX的可视化操作接口

       ---vi输入Q进入EX模式,在EX模式下输入vi进入vi

vim是什么?

       ---vi  improved,改进版的VI

vim对vi的改进:

       ---多级撤销,多窗口,增加了图形界面功能

       ---内置脚本语言,可以无限制扩充与自定义需求

vim的兼容模式

       ---vim确省是vi兼容模式,方向键,退格键不能用

       ---大多数unix类似的操作系统已默认安装vim  

       ---大多数GNU/linux已经将/bin/vi链接到vim的可执行文件

vim启动过程

1.设置内部变量SHELL和term

2.处理命令行参数:包括选项和要打开的文件名

3.加载系统级和用户级别的配置文件

4.加载插件并执行

5.执行GUI部分的初始化

6.如果viminfo不为空,则读取viminfo文件,恢复上次的编辑环境

7.打开显示所有的窗口

8.执行用户指定的启动时命令

vim配置文件:vimrc

    ----查看各个配置文件路径

          -vim --version

    ----用户级配置文件

          - $HOME/.vimrc   只对当前用户有效

    ----系统级配置文件

          - /etc/vim/vimrc     对所有的用户都有效

常用的一些vim设置:基本设置,主题设置

vim使用教程

vim的按键映射

 按键映射基础知识:

-----vim里唯一能够让它屈服你的意志的功能:按键 映射

-----查看某个按键映射:verbose map   xx

 map-------normal,visual,operator pending

nmap------normal

vmap------visual

omap------operator pending

map!-------insert,command line

imap--------insert

cmap-------command line

常用的功能,辅助键

tab键:<tab>

<CR>代表Enter键

<F5>代表F5功能键

<Esc>代表Escape键

<LEFT>,<RIGHT>,<UP>,<DOWN>,<DELETE>

<BS>代表Backspace键,<space>代表空格键

 inoremap代表:i代表是在插入模式下有效,nore表示不递归no  recursion。

括号自动补全 

vim使用教程

 插入模式下的光标移动

方法一:

      1.回到Normal模式

      2.移动光标到指定位置

      3.重新回到插入模式

方法二:按键映射

      vim使用教程

 编译完成后跳出括号的按键映射

vim使用教程

  复制,粘贴快捷键设置

vim使用教程

自动编译,运行源文件

 ---在命令行模式下:

              --cmap<C-R> make && ./hello

              --在命令行模式下,ctrl+r即可自动编译运行

---在normal模式下:

              --map<F5> :make &&clear && ./hello

              --在normal模式下,使用F5快捷键自动编译运行

内建命令

vim在不同模式,都有内建的命令:

               ---normal模式下:hjkl用来移动光标,dd/p删除粘贴等

               ---命令行模式下:q退出,查找命令等

插入模式下是个例外:

               ---但是用户也可以自定义命令(这也是vim的强大所在)

               ---如:imap  ptf   printf  插入模式下用户输入ptf,就是输入printf

建议:

               ---尽量不要在insert模式下自定义命令

               ---同样的功能,完全可以在normal模式下完成

               ---尽量不要覆盖内建命令

vim脚本语法

vim脚本:

              ---语法文件vimrc也是vim脚本,在该文件你可以设置命令选项

              ---或者使用冒号命令(EX命令或者命令行命令)

变量:

         命名:

              ---由字符,数字,下划线组成,不能由数字开头

              ---let    列出当前定义的所有变量

         局部变量:

              ---脚本文件局部变量 s:name         :let  s:count=1(只在本文件有效)

              ---全局变量               g:name

              ---vim预定义变量      v:name

              ---窗口局部变量                           w:name 

              ---缓冲区局部变量     b:name

         删除变量:

              使用unlet      :unlet  s:count

              变量不存在也不用报错         :unlet!s:count

         字符串变量:

              定义一个字符串变量             :let  name=“peter”

              回显变量                               :echo   name

变量的类型是动态的,当我们通过:let 赋值时类型才被确定

表达式:

常见的表达式:

      ----echo 5*3+3*2

字符串常量和变量都属于表达式;

其他的表达式:

      ----环境变量   $NAME

      ----选项          $name

      ----寄存器       @r

语句:

条件语句:

        if(condition)

           {statement}

        endif

逻辑操作:

     a == b  a!=b  a>b   a>=b  a<=b  a=~b(a是否匹配b) a!~b

     字符串比较时,用“#”大小写敏感,用“?“忽略大小写

     a!~#b   a=~#b   a!~?b   a=~?b

循环:

  while

  endwhile

执行一个表达式:

执行冒号命令

: execute  ”cmd"

执行普通命令

:normal cmd

例如:删除一行    :normal  dd

使用函数:

定义一个函数:

function{name}({var1},{var2})

{body}

endfunction

定义一个已经存在的函数:

function!{name}({var},{var2},...)

可变参数:

function({var1},{var2},....)

a:1    表示第一个可选参数

a:2    表示第二个可选参数

查看函数内容:

function   name

删除函数

delfunction  name

列表

vim数据类型:

     ---基本数据类型:字符串,数值

     ---复合数据类型:列表,字典

列表的定义和使用:

 let alist=【‘apple’,‘pear’,‘peach’】

call  add(alist,‘banana’)

echo alist

for  n in alsit

echo n

endfor

字典

字典的定义和使用:

let  notebook={'jim':'98','kate':'100'}    定义,保存键-值

echo  notebook【‘jim’】     查找字典

for key  in keys(notebook)   遍历字典

echo  key

endfor

字典函数:

echo  notebook.jim

let   notebook.kate='99'

echo  notebook

echo  split('how ate you')  ->['how','are','you']

ctags的使用

ctags的简介

ctags(Generate tag files  for  source  code)是vim下方便代码阅读的工具。尽管ctags也可以支持其他编译器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易浏览源代码。

ctags的安装命令

在终端命令行下直接输入 sudo apt-get install ctags 进行安装

使用命令 ctags --version 查看版本信息

ctags的配置

使用sudo  vi  /etc/vim/vimrc编辑vim配置文档,在其中加入如下的命令:set  tags=tags文件的路径 ;例如我的tags文件路径为/home/lizhiwen/tags,所以我的可以这样加set   tags=/home/lizhiwen/tags;如果需要配置多个tags,只需要在后面添加就行了。

vim的使用

把光标移动变量名或者函数名上,然后按下Ctrl +] ,这样就能直接调到这个变量或者函数的定义的源文件中,并把光标定义到这一行。用Ctrl + t可以退回原来的地方。

taglist的使用

taglist的简介

taglist插件是一筐基于ctags,在vim代码窗口旁以分割窗口形式显示当前的代码结构概览,增加代码浏览的便利程度的vim插件

taglist的安装

第一步:

taglist的下载网址:Vim源代码浏览器插件下载|SourceForge.net

第二步:

解压:unzip taglist_46.zip.解压之后可以看到文件夹doc和文件夹plugin

第三步:

拷贝:将plugin文件夹里面的taglist.vim拷贝到~/.vim/plugin文件夹下。如果没有~/.vim这个文件夹,可以手动创建一个。

也可以安装在/usr/share/vim/vim81目录下面,只要是官方路径下面就可以

一般用户自己安装的插件建议安装在~/.vim下面

taglist的打开和关闭

在vim的命令模式下输入   Tlist    打开taglist窗口

使用空格键,在屏幕底显示函数原型

在vim的命令模式下输入   TlistClose    关闭taglist窗口

上一篇:《寒假去世十 第九章》


下一篇:Python--函数对象@命名空间与作用域@包函数@装饰器@迭代器@内置函数