一、完全卸载vim的方法

sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除)

二、Vim前言——————“世界上只有三种编辑器,EMACS、VIM和其它”

三、Vim基础入门

1、光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl字母键

h(左移)     j(上移)     k(下移)     l(右移)

2、进入vim编辑器方法:

vim  文件名

3、退出vim编辑器的方法:

<ESC>    :q!    <回车>        放弃所有改动退出
<ESC> :wq <回车> 保存改动退出

4、在正常模式下删除光标所在位置的字符

x

5、插入文本

i    输入插入文本(在光标处)
A 输入插入文本(在一行后添加文本)

6、删除

dw              从光标处删除到下一个单词
d$ 从光标处删除到当前行末尾
dd 删除整行

7、动作重复

operator   [number]   motion

8、光标移动到首行

0

9、撤销动作

u         撤销
U 撤销在一行所做的改动
ctrl-R 恢复撤销的结果

10、重新置入删除内容

p

11、替换

r         替换当前光标的字符
ce 替换当前光标到单词的末尾的内容
c$ 替换当前光标到行末的内容

12、光标跳转

CTRL-G           用于显示当前光标所在位置和文件状态信息
G 光标跳到文件最后一行
行号-G 先输入行号再输入G,则是将光标移动到该行号代表的行
gg 光标跳到文件到首行

13、查找

/ '+' 字符         正向查找该字符
?'+'字符 反向查找字符
n 重复正常执行查找字符串
N 重复反向执行查找字符串
CTRL-O 跳转回较旧位置
CTRL-I 跳转回较新位置
:nohl 取消高亮

14、括号匹配

% 

15、替换字符串

s/old/new               在一行内替换第一个old字符串为new
s/old/new/g 在一行内替换所old为new
#,#/s/old/new/g 从#到#行内的所有old替换为new
%s/old/new/g 替换文件内的全部old为new
%s/old/new/gc 进行全文替换的时候询问用户确认每个替换需添加c标志

16、在vim中使用外部命令

:!command    执行一个外部命令command
:!ls 用于显示当前目录的内容
:!del filename 删除名字为filename的文件

17、文件间操作

:w  FILENAME                  将当前vim编辑的内容保存命名为FILENAME的文件中
v motion:w FILENAME 将当前编辑文件中可视模式下选中的内容保存到FILENAME中
:r FILENAME 提取磁盘文件FILENAME幷插入到当前文件的光标位置后面
:r !dir 可读取dir命令的输出幷放置到当前文件的光标位置后面

18、插入模式进入

19、光标移动

w   移动到下一个单词的首部
e 移动到当前单词的尾部
b 返回到上一个单词的首部

20、复制黏贴

y    复制文本
p 黏贴文本

21、替换模式

R 

22、set xxx进行一些有用的设置

'ic'   'ignorecase'       查找时忽略字母的大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语 在选项前加上'no’可以关闭选项 set noic

四、vim基础入门推荐教程

1、自带的vimtutor

2、http://coolshell.cn/articles/5426.html   简明VIM练级攻略

3、https://vim-adventures.com/               VIM大冒险

4、命令图解

五、插件管理神器vundle安装

链接:http://blog.csdn.net/zhangpower1993/article/details/52184581

1、安装vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2、配置说明

插件有三种类型:
1. Github上vim-scripts仓库的插件
2. Github上非vim-scripts仓库的插件
3. 不在Github上的插件
对于不同的插件,vundle自动管理和下载插件的时候,有不同的地址填写方法,有如下三类:
1. 在Github上vim-scripts用户下的仓库,只需要写出repos(仓库)名称
2. 在Github其他用户下的repos, 需要写出”用户名/repos名”
3. 不在Github上的插件,需要写出Git全路径

3、配置vundle插件

vim ~/.vimrc

4、vimrc样例

set nocompatible              " 去除VI一致性,必须要添加
filetype off " 必须要添加 " 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim' " 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
Plugin 'ascenator/L9', {'name': 'newL9'} " 你的所有插件需要在下面这行之前
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
"
" 常用的命令
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后

5、安装需要的插件

(1)将想要安装的插件,按照地址填写方法,将地址填写在vundle#beginvundle#end之间就可以

(2)保存之后,有两种方法安装插件

A、运行 vim ,再运行 :PluginInstall

B、vim +PluginInstall +qall

6、移除不需要的插件

  1. 编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行。
  2. 保存退出当前的vim
  3. 重新打开vim,输入命令BundleClean

7、其他常用命令

  1. 更新插件BundleUpdate
  2. 列出所有插件BundleList
  3. 查找插件BundleSearch

六、vim配置

1、无敌现成vim配置:https://github.com/spf13/spf13-vim/

curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

2、很好的一篇博文:讲解常用配置,可惜太小白了,自己装一个都跑不起来,研究出来再做下笔记。

vim学习笔记(一)—— vim安装方法的更多相关文章

  1. vim学习笔记(2)——vim配置

    记录vim的配置,随时更新 MacVim 安装: homebrew,安装位置:/usr/local/Cellar brew linkapps macvim--将macvim.app加入到Applica ...

  2. vim学习笔记(1)——vim操作

    仅记录一些自己最经常使用的vim操作.随时更新 文本操作 d 剪切.双击剪切一行 y 复制,双击复制一行 p 粘贴 x 删除当前光标下字符 r 替换当前光标字符.后面接替换的字符 :s/old/new ...

  3. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  4. 【python学习笔记】9.魔法方法、属性和迭代器

    [python学习笔记]9.魔法方法.属性和迭代器 魔法方法:xx, 收尾各有两个下划线的方法 __init__(self): 构造方法,创建对象时候自动执行,可以为其增加参数, 父类构造方法不会被自 ...

  5. Java8学习笔记(八)--方法引入的补充

    在Java8学习笔记(三)--方法引入中,简要总结了方法引入时的使用规则,但不够完善.这里补充下几种情况: 从形参到实例方法的实参 示例 public class Example { static L ...

  6. openresty 学习笔记一:环境安装

    openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...

  7. linux学习笔记:vim程序编辑器—vim的使用

    注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...

  8. 学习笔记之vim的使用

    很多刚学习linux编程的人总是对vim有一种恐惧,我自己就是这么回事的. 可是当你努力的去尝试学习使用后,才发现它的精髓所在. 在我看来,让vim变得好用的前提是要安装两个插件,ctags和tagl ...

  9. vim学习笔记(10):vim命令大全

    进入vim的命令: vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光 ...

  10. Linux学习笔记之VIM编辑器

    此处根据需要,只罗列一些常用的指令和用法 五.VIM程序编辑器 Vi与vim Vi打开文件没有高亮注释,vim有,且vim是vi的高级版本 Vim默认打开文件为命令模式 i               ...

随机推荐

  1. [转]shell脚本每行的执行顺序是怎样

    原文:https://blog.csdn.net/weixin_42609121/article/details/83028000 ---------------------------------- ...

  2. Spring(二十一):Spring JdbcTemplate、NamedParameterJdbcTemplate具名参数

    JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...

  3. sql server 向mysql前移数据-单引号问题

    sql server中的数据导出来 用两个单引号表示一个单引号,这样的格式可以录入到mysql中: 但是遇到特殊的中文字符,例如顿号等,不能正确的显示两个单引号: mysql导出来的数据用反斜线和一个 ...

  4. OpenGL ES 3.0之顶点缓冲

    所谓顶点缓冲就是直接将顶点数据存储在gpu的一段缓冲区,不需要从cpu拷贝到gpu.提高了程序的运行效率. 操作步骤 1.创建顶点缓冲对象 GLuint vertexBufferID; 2.分配空间 ...

  5. iOS 中基础字符判断函数收集(如判断大小写、数字等)

    函数:isdigit 用法:#include 功能:判断字符c是否为数字 说明:当c为数字0-9时,返回非零值,否则返回零. 函数:islower 用法:#include 功能:判断字符c是否为小写英 ...

  6. 微信小程序 - 动态背景图片实现

    很简单-就两步 wxml(遍历style的background-image路径即可) wxss(.ab)

  7. Go语言中Socket通信之Tcp客户端

    1.用法: (1)定义远程IP地址.使用net.ResolveTCPAddr()方法,定义一个TCP地址,做为目标连接地址. (2)调用net.DialTCP("tcp",nil, ...

  8. NGINX proxy_pass 域名解析问题

    前两天发现一个问题,当使用proxy_pass的时候,发现域名对应IP是缓存的,这样一旦VIP变化之后,就会报错,下面就来详细分析一下这个问题. 一.问题说明 location = /test { i ...

  9. python2x与3x下使用urlretrieve下载文件

    1.python2x下urlretrieve方法: 直接将远程数据下载到本地. urllib.urlretrieve(url[, filename[, reporthook[, data]]]) 参数 ...

  10. JPress的CMS系统在Window下的部署和使用

    开始使用JPress系统的话首先要进入官网对其进行熟悉 官网网址如下:http://www.jpress.io/faq.html 然后是下载项目,项目下载地址是.https://gitee.com/f ...