一、vim几种模式:

normal模式:进入vim不能编辑或者少按esc的不能编辑的模式;

编辑模式:通过insert(插入)、append(追加)或者少新建一行o等等可以编辑内容模式;

命令模式:类似退出 :wq这种模式;

可视化模式:visual模式;(Visual模式一般用来块状选择文本)类似于我们的shift+方向键选择;

Normal模式下使用v进入visual选择

使用V选择行

使用ctrl+v进行方块选择

二、编辑写入相关:

1、编辑写入相关操作:

1)插入、追加、新建

小写

i---->insert(插入)a---->append(追加)o---->NEW a line below(当前光标新建下一行添加)

大写

I---->insert before line(在一行的开始第一个字符插入)A---->append after line(在一行的最后一个字符追加)O---->NEW a line above(当前光标新建上一行添加)

2)编辑的一些相关操作:

纠错操作(这个同时也适用shell终端)

ctrl+h删除上一个字符ctrl+w删除上一个单词ctrl+u删除当前行

终端shell一些好的操作:

ctrl+a移动到行首ctrl+e移动到行末尾ctrl+b向前移动ctrl+f向后移动

2、保存退出相关操作

1)保存退出

先按esc:wq---->(wirte&quit)shift+ZZ---->(wirte&quit)

2)退出

先按esc:q---->(quit)

3)强制退出

先按esc:q!---->(强制quit)

三、快捷操作:

1、设置行号:

命令模式::set nu

2、分屏操作:

命令模式: :vs---->横向分屏(vertical split)         :vp---->纵向分屏(split)          想要退出对应的模式::q

3、全局替换:

命令模式::% s/java/c++/g ---->全局替换(%全部字符、s替换、将Java替换c++、g全局)

4、快速切换insert和normal模式:

insert切换normal模式---->使用ctrl+c代替Esc (但是可能会中断某些插件)或者ctrl+[normal切换insert模式---->gi快速跳转到你最后一次编辑的地方并进入插入模式

5、vim移动快捷键:

普通的移动:左(h) ,下(j) , 上(k) ,右(l) ,移动也不会让手指脱离主键盘区

6、在单词之间移动:

w/W移到下一个word/WORD开头。e/E 下一个word/WORD尾;b/B回到上一个word/WORD开头,可以理解为backword;word指的是以非空白符分割的单词,WORD以空白符分割的单词;

7、行间搜索快速移动:

使用f{char}可以移动到char字符上, t移动到char的前一个字符如果第一次没搜到 ,可以用分号(;)/逗号(,)继续搜该行下一个/上一个大写的F表示反过来搜前面的字符

8、Vim水平移动

0移动到行首第一一个字符, ^移动到第一个非空白字符$移动到行尾,g_移动到行尾非空白字符记住常用的0和$就可以满足日常需求了

9、Vim页面移动

翻页命令太多, 2/8定律,记住常见的就能满足需求gg/G移动到文件开头和结尾,你可以使用ctrl+o快速返回H/M/L跳转到屏幕的开头(Head) ,中间(Middle)和结尾(Lower)Ctrl+u. ctrl+f..上下翻页. (upword/forward)。zz 把屏幕置为中间

10、Vim快速删除:

Vim在normal模式下使用x快速删除一一个字符使用d (delete)配合文本对象快速删除一个单词daw (d aroundword)d和x都可以搭配数字来执行多次

11、Vim快速修改:

常用有三个, r (replace) , C (change) , s(substitute)normal模式下使用r可以替换一个字符。s替换并进入插入模式使用c配合文本对象,我们可以快速进行修改

12、Vim查询:

使用/或者?进行前向或者反向搜索使用n/N跳转到下一个或者上一一个匹配使用*或者#进行当前单词的前向和后向匹配

上面是一些常用操作的整理。

-----------------------------分割线-------------------------------

下面是个人安装的vim和相关插件的记录:

MacVim下载地址:

https://github.com/macvim-dev/macvim/releases/tag/snapshot-161

直接安装:

下载插件:

创建目录:

mkdir ~/.vim/bundle/

克隆插件

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

配置和设置插件:

详细的配置文件

"*****************************用户自定义设置*******************************""--单词补全" u [小写]                   --单步复原 [非插入模式]" U [大写]                   --整行复原 [非插入模式]" :set syntax=cpp            --手动选择语法高亮 [或 :set filetype=cpp]" :%!xxd                     --转储二进制文件,以十六进制形式显示" :%!xxd -r                  --还原二进制文件"********************************设置快捷键*******************************"" Ctrl+D              删除当前行mapddaimapdda" Ctrl+N              显示缓冲区的下个文件并留在插入模式[插入模式]map:confirm bnextAimap:confirm bnextA"********************************设置编码*******************************""设置换行编码:set fileformats=unix,dos,mac"设置Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等set encoding=utf-8"设置文件编码if has("win32")set fileencoding=chineseelseset fileencoding=utf-8endif"Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式"并把fileencoding设置为探测出的编码方式set fileencodings=ucs-bom,utf-8,chines" 解决菜单乱码source $VIMRUNTIME/delmenu.vimsource $VIMRUNTIME/menu.vim" 解决consle输出乱码language messages zh_CN.utf-8"********************************基本设置******************************"colorscheme desert           " 着色模式:灰色背景set guifont=Monaco:h14set tabstop=4                " 设置tab键的宽度set shiftwidth=4             " 换行时行间交错使用4个空格set autoindent               " 自动对齐set backspace=2              " 设置退格键可用set cindent shiftwidth=4     " 自动缩进4空格set smartindent              " 智能自动缩进set ai!                      " 设置自动缩进set nu!                      " 显示行号set showmatch                " 显示括号配对情况set mouse=a                  " 启用鼠标set ruler                    " 右下角显示光标位置的状态行set incsearch                " 查找book时,当输入/b时会自动找到set hlsearch                 " 开启高亮显示结果set incsearch                " 开启实时搜索功能set nowrapscan               " 搜索到文件两端时不重新搜索set nocompatible             " 关闭兼容模式set cursorline               " 突出显示当前行set hidden                   " 允许在有未保存的修改时切换缓冲区set list                     " 显示Tab符,使用一高亮竖线代替set listchars=tab:\|\        " 显示Tab符,使用一高亮竖线代替set noswapfile               " 设置无交换区文件"set writebackup              " 设置无备份文件set nobackup                 " 设置无备份文件set autochdir                " 设定文件浏览器目录为当前目录set foldmethod=syntax        " 选择代码折叠类型set foldlevel=100            " 禁止自动折叠set laststatus=2             " 开启状态栏信息set cmdheight=2              " 命令行的高度,默认为1,这里设为2set showtabline=2            " 设置默认显示标签set clipboard+=unnamed       " 与系统公用剪贴板set autoread                 " 当文件在外部被修改,自动更新该文件set scrolloff=5              " 设定光标离窗口上下边界 5 行时窗口自动滚动set guioptions-=T            " 去掉上方工具栏set autochdir                " 自动切换到当前目录"set autoread                 " 自动检测并加载外部对文件的修改"set autowrite                " 自动检测并加载外部对文件的修改"set showcmd                  " 命令栏显示命令 "set ignorecase smartcase     " 搜索时智能忽略大小写syntax enable                " 打开语法高亮syntax on                    " 开启文件类型侦测if has("gui_running")    "winpos 20 20            " 指定窗口出现的位置,坐标原点在屏幕左上角    "set lines=20 columns=90 " 指定窗口大小,lines为高度,columns为宽度    "set guioptions-=m       " 隐藏菜单栏    "set guioptions-=T       " 隐藏工具栏    "set guioptions-=L       " 隐藏左侧滚动条    "set guioptions-=r       " 隐藏右侧滚动条    set guioptions+=b        " 显示底部滚动条    set nowrap               " 设置不自动换行endif"*****************************设置状态栏*************************************"let &statusline=' %t %{&mod?(&ro?"*":"+"):(&ro?"=":" ")} %1*|%* %{&ft==""?"any":&ft} %1*|%* %{&ff} %1*|%* %{(&fenc=="")?&enc:&fenc}%{(&bomb?",BOM":"")} %1*|%* %=%1*|%* 0x%B %1*|%* (%l,%c%V) %1*|%* %L %1*|%* %P'"******************************* 引号 && 括号自动匹配*******************************":inoremap ( ()i:inoremap )=ClosePair(')'):inoremap { {}i:inoremap }=ClosePair('}'):inoremap [ []i:inoremap ]=ClosePair(']'):inoremap < <>i:inoremap >=ClosePair('>'):inoremap " ""i:inoremap ' ''i:inoremap ` ``ifunction ClosePair(char)    if getline('.')[col('.') - 1] == a:char        return "\"    else        return a:char    endifendf"配置插件set rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin() Plugin 'gmarik/Vundle.vim'Plugin 'scrooloose/nerdtree'call vundle#end()" NerdTree才插件的配置信息""将F2设置为开关NERDTree的快捷键map:NERDTreeToggle""修改树的显示图标let g:NERDTreeDirArrowExpandable = '+'let g:NERDTreeDirArrowCollapsible = '-'""窗口位置let g:NERDTreeWinPos='left'""窗口尺寸let g:NERDTreeSize=30""窗口是否显示行号let g:NERDTreeShowLineNumbers=1""不显示隐藏文件let g:NERDTreeHidden=0

接下来直接执行

:PluginInstall

安装完成。

参考链接:

https://www.imooc.com/video/19452

公众号:

thelostworld:

个人知乎:

https://www.zhihu.com/people/fu-wei-43-69/columns

个人简书:

https://www.jianshu.com/u/bf0e38a8d400

python vim 自动换行_Vim学习笔记整理相关推荐

  1. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  2. vim 快捷键_VIM学习笔记 自动补全详解(Auto-Completion Detail)

    在插入模式下,利用自动补全(Insertion-Completion)功能,vim能够根据正在输入的字符,查找匹配的关键字并显示在弹出菜单(popup menu)中.通过选择匹配项,可以补全输入的部分 ...

  3. 【学习笔记】Python编程,从入门到实践(自学python心路历程及学习笔记整理)

    [学习背景] 最爱语录:人生苦短,我用python! Input("Is life always this hard or is it just when you are a kid?&qu ...

  4. Python 知识点超全学习笔记整理

    文章目录 入门必学基础 变量和数据类型 分支与循环 一.分支 **if...else** **if...elif...else** if语句的嵌套: 二.循环 1.while循环 2.for循环 三. ...

  5. vim 快捷键_VIM学习笔记 环绕字符编辑(surround)

    surround 插件可以快速编辑围绕在内容两端的字符(pairs of things surrounding things),比如成对出现的括号.引号,甚至HTML/XML标签等. 安装配置 推荐您 ...

  6. Python基础教程(学习笔记整理DAY3)

    文章目录 高阶函数 map()函数 reduce()函数 filter()函数 模块与包 time模块 random模块 面向对象程序设计 类定义语法 属性 方法 继承 方法的重写 多重继承 多态性 ...

  7. Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)

    全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...

  8. Python基础知识_学习笔记(20200629更新)

    Python学习笔记 本人跟随pythonav武老师视频课学习 侵权删! 瞎哔哔区: 2020-04-19:跟随武老师视频整理了第一版笔记,计划每周末都将这一周的学习笔记整理出来,供大家分享讨论 20 ...

  9. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

  10. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

最新文章

  1. Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus
  2. dubbo 源码编译记录
  3. PLMN选择,RPLMN、EPLMN、UPLMN、OPLMN、VPLMN、APLMN、FPLMN的概念
  4. TurboMail邮件系统支持HTTPS双向认证
  5. OpenCV图像操作的实例(附完整代码)
  6. 笑郭网络验证3.8研究笔记(内有视频教程)
  7. C# SNMP 编程
  8. RMAN深入解析之--内存中的RMAN
  9. 计算机科学导论填空题,计算机科学导论习题
  10. 计算机字体颜色太浅,我的打印机打字太淡,如何调,打印的字就能够颜色
  11. 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
  12. 系列学习 Gateway 之第 1 篇 —— SpringCloud Gateway 简介,Gateway 入门实例
  13. dns被劫持怎么办、如何完美解决网站DNS域名被劫持
  14. Hive的学习心得-个人理解什么是hive
  15. Bellman Equation 贝尔曼方程
  16. 清华张敏教授:个性化推荐研究进展(可解释性、鲁棒性和公平性)
  17. 采用jacob读取并在网页中显示ppt、word、excel
  18. mcpe服务器网页控制台教程,mcpe服务器指令
  19. 多搜- 多个网站一起搜(舆情监控版)
  20. 二叉树的遍历和线索线索二叉树

热门文章

  1. CentOS 8 基础命令
  2. 使用Java打开外部程序
  3. 参数等效模型可以用于_扬声器单元的等效电路分析与应用(1)
  4. 安卓饼状图设置软件_Android自定义控件实现饼状图
  5. linux备份文件_aptclone:备份已安装的软件包并在新的 Ubuntu 系统上恢复它们 | Linux 中国...
  6. python3file函数_Python3 File(文件) 方法
  7. sqlserver高可用方案_PowerJob 的自实现高可用方案,妙妙妙
  8. 小菜找实习——阿里3月20日笔试第二题
  9. centos安装cmake
  10. 关于Maven的7个问题