vim-web:像 IDE 一样的 Vim,安装设置自己的 Vim

在 vim-web v2 版本插件设置太多,新版本 v3 只设置少量的插件,是一个简朴的版本。 安装 最新版本的Vim 8.1+ 使用下面下令安装 vim 版本并更新: brew install macvim # 安装 macvim brew ins...

在 vim-web v2 版本插件设置太多,新版本 v3 只设置少量的插件,是一个简朴的版本。


安装

最新版本的Vim 8.1+ 使用下面下令安装 vim 版本并更新:

brew install macvim # 安装 macvim
brew install macvim --override-system-vim

将插件以及设置下载到 ~/.vim/ 目录中,这个目录是存放所有插件和设置的地方。vimscript是vim自己的一套剧本语言,通过这种剧本语言可以实现与 vim 交互,到达功效扩展的目的。一组 vimscript 就是一个 vim 插件,vim 的许多功效都由各式插件实现。

$ git clone https://github.com/jaywcjlove/vim-web.git ~/.vim
$ ln -s ~/.vim/.vimrc ~/.vimrc
# 插件治理器
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
# 安装主题
curl -LSso ~/.vim/colors/molokai.vim https://raw.githubusercontent.com/fatih/molokai/master/colors/molokai.vim

或者剧本下载安装

# 安装 vim-web
curl -sLf https://raw.githubusercontent.com/jaywcjlove/vim-web/master/install | bash -s -- install
# 卸载 vim-web
curl -sLf https://raw.githubusercontent.com/jaywcjlove/vim-web/master/install | bash -s -- uninstall

快捷键

U # 选中 - 变大写 
u # 选中 - 变小写
~ # 选中 - 变大写变小写,小写变大写
##########
<ctrl+p> # 启动搜索文件
;tt      # 开启/关闭代码导航
;fl      # 开启/关闭目录菜单
:!which ls  # 找下令不推出vim运行下令

整页翻页

ctrl-f # 下一页 f 就是`forword` 
ctrl-d # 下半页 d 
ctrl-b # 上一页 b 就是`backward`  
ctrl-u # 上半页 u  

保留退出

:w new_filename     # → 保留为指定文件  
:w   # → 保留修改  
:wq  # → 保留修改并推出  
ZZ   # → 快捷键,保留修改并推出  
:q!  # → 不保留修改推出  
:wq! # → 保留修改并推出(文件所有者,root权限的用户)  

文本编辑搜索等操作

xp  # 左右交流光标处两字符的位置
:200,320 join # 合并第200~320行
J  # 选中多行合并

:r ~/git/R.js # 将文件内容导入到该文件中
:r !date    # 将当前编辑时间导入当前文本光标所在行
:!date      # 查看编辑时间

;sp # 选中搜索 - 文本中选中关键字
    # normal模式下 选中搜索 - 文本中选中关键字
;sl # 选中搜索 - 效果列表

;y  # 复制到剪切板
y   # 复制
yy  # 复制当前行
nyy # n示意大于1的数字,复制n行
yw  # 从光标处复制至一个票据/单词的末尾,包罗空格
ye  # 从光标处复制至一个票据/单词的末尾,不包罗空格
y$  # 从当前光标复制到行末
y0  # 从当前光标位置(不包罗光标位置)复制之行首
y3l # 从光标位置(包罗光标位置)向右复制3个字符
y5G # 将当前行(包罗当前行)至第5行(不包罗它)复制
y3B # 从当前光标位置(不包罗光标位置)反向复制3个单词
.   # 粘贴
p   # 粘贴

# 多光标编辑
Shift+n # 选中下一个相同字符
Shift+k # 跳过当前选中的字符

:1,24s/header/www/g  # 第1到24行将header替换成www

刷新重载打开的文件

:e  # 刷新当前文件
:e! # 强制刷新当前文件

简朴排版

:ce(nter)  # 居中显示光标所在行
:ri(ght)   # 靠右显示光标所在行
:le(ft)    # 靠左显示光标所在行
J          # 将光标所在下一行合并到光标所在行

>>         # 光标所在行增添缩进(一个tab)
<<         # 光标所在行削减缩进(一个tab)

n>>        # 光标所在行最先的n行增添缩进
n<<        # 光标所在行最先的n行削减缩进

插件治理器

插件治理器换成了 Pathogen 看上去比其它插件治理器更简朴的样子,安装插件只需将插件放入 bundle 目录,在 ~/.vimrc 设置即可。

明白Vim

这部门泉源 一起来说 Vim 语 ,明白此部门是需要你已经领会了 Vim 的几种常用的事情模式(正常模式、插入模式、下令模式等)

动词明白

动词代表了我们计划对文本举行什么样的操作。例如:

d # 示意删除delete
r # 示意替换replace
c # 示意修改change
y # 示意复制yank
v # 示意选取visual select
名词明白

名词代表了我们即将处置的文本。Vim 中有一个专门的术语叫做 [文本工具] text object,下面是一些文本工具的示例:

w # 示意一个单词word
s # 示意一个句子sentence
p # 示意一个段落paragraph
t # 示意一个 HTML 标签tag
引号或者种种括号所包罗的文本称作一个文本块。
介词明白

介词界定了待编辑文本的局限或者位置。

i # 示意在...之内 inside
a # 示意围绕... around
t # 示意到...位置前 to
f # 示意到...位置上 forward
数词明白

数词指定了待编辑文本工具的数目,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑下令的语法就升级成了下面这样:

动词 介词/数词 名词

下面是几个例子:

c3w  # 修改三个单词:change three words
d2w  # 删除两个单词:delete two words

另外,数词也可以修饰动词,示意将操作执行 n 次。于是,我们又有了下面的语法:

数词 动词 名词

请看示例:

2dw # 两次删除单词(等价于删除两个单词): twice delete word
3x  # 三次删除字符(等价于删除三个字符):three times delete character
组词为句明白

有了这些基本的语言米素,我们就可以着手组织一些简朴的下令了。文本编辑下令的基本语法如下:

动词 介词 名词

下面是一些例子(若是熟悉了上面的观点,你将会看到这些例子异常容易明白),请亲自在 Vim 中试验一番。

dip # 删除一个段落: delete inside paragraph
vis # 选取一个句子: visual select inside sentence
ciw # 修改一个单词: change inside word
caw # 修改一个单词: change around word
dtx # 删除文本直到字符“x”(不包罗字符“x”): delete to x
dfx # 删除文本直到字符“x”(包罗字符“x”): delete forward x

菜单目录

工程文件菜单插件 scrooloose/nerdtree

ctrl + i # 菜单显示隐藏文件
;fl      # 显示文件菜单 file list
# 可以直接在Tab之间切换。
gt # 后一个Tab标签
gT # 前一个Tab标签
ma # 新建文件,新建目录,文件目录 'folder/' 记着后面的斜杠
shift+i      # 显示/隐藏隐藏文件 
t       # 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T       # 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
i       # split 一个新窗口打开选中文件,并跳到该窗口
gi      # split 一个新窗口打开选中文件,但不跳到该窗口
s       # vsplit 一个新窗口打开选中文件,并跳到该窗口
gs      # vsplit 一个新 窗口打开选中文件,但不跳到该窗口

ctrl + w + h    # 光标 focus 左侧树形目录
ctrl + w + l    # 光标 focus 右侧文件显示窗口
ctrl + w + w    # 光标自动在左右侧窗口切换
ctrl + w + r    # 移动当前窗口的结构位置
o       # 在已有窗口中打开文件、目录或书签,并跳到该窗口
go      # 在已有窗口 中打开文件、目录或书签,但不跳到该窗口

!       # 执行当前文件
O       # 递归打开选中 结点下的所有目录
x       # 合拢选中结点的父目录
X       # 递归 合拢选中结点下的所有目录,收起当前目录树
e       # Edit the current dif

双击    相当于 NERDTree-o
中键    对文件相当于 NERDTree-i,对目录相当于 NERDTree-e

D       # 删除当前书签
#
P       # 跳到根结点
p       # 跳到父结点
K       # 跳到当前目录下同级的第一个结点
J       # 跳到当前目录下同级的最后一个结点
k       # 跳到当前目录下同级的前一个结点
j       # 跳到当前目录下同级的后一个结点

C       # 将选中目录或选中文件的父目录设为根结点
u       # 将当前根结点的父目录设为根目录,并酿成合拢原根结点
U       # 将当前根结点的父目录设为根目录,但保持展开原根结点
r       # 递归刷新选中目录,刷新当前目录
R       # 递归刷新根结点,刷新根目录树
m       # 显示文件系统菜单
cd      # 将 CWD 设为选中目录

I       # 切换是否显示隐藏文件
f       # 切换是否使用文件过滤器
F       # 切换是否显示文件
B       # 切换是否显示书签
#
q       # 关闭 NerdTree 窗口
?       # 切换是否显示 Quick Help

HTML操作

便捷操作得益于插件 Emmet.vim 。键入 div>p#foo$*3>a 然后按快捷键 <c-y>, – 示意 <Ctrl-y> 后再按逗号【 Ctrl y , 】。

新建 vim index.html 文件,输入 html:5_ 使用快捷键 Ctrl y , ,即可初始化一个 HTML 文件。

按大写的 V 进入 Vim 可视模式,行选取上面三行内容,然后按键 Ctrl + y + , ,这时 Vim 的下令行会提醒 Tags: ,键入 ul>li* ,然后按 Enter 。

<ctrl+y>d # 凭据光标位置选中整个标签  
<ctrl+y>D # 凭据光标位置选中整个标签内容  
<ctrl-y>n # 跳转到下一个编辑点  
<ctrl-y>N # 跳转到上一个编辑点  
<ctrl-y>i # 更新图片大小  
<ctrl-y>m # 合并成一行  
<ctrl-y>k # 移除标签对  
<ctrl-y>j # 支解/合并标签  
<ctrl-y>/ # 切换注释  
<ctrl-y>a # 从 URL 地址天生锚  
<ctrl-y>A # 从 URL 地址天生引用文本  

代码导航

通过 majutsushi/tagbar 插件实现,Vim 的类代码舆图查看器,通过 :TagbarToggle 来查看。

;tt # 开启/关闭导航

文本内容搜索

通过 easymotion/vim-easymotion 插件可以厚实搜索

;f  # 启动搜索输入字母,泛起位置选择
;e  # 下一页随机位置
;b  # 上一页随机位置
;n  # 下一页随机位置

基本搜索,这种搜索不需要依赖任何插件,输入 / 再输入需要搜索的内容,摁 Enter 键,将会高亮所有搜索的内容,在英文状态下摁 n 字母键向下查找,下次打开文件时,这些字符串仍然高亮显示,使用下令 :nohl 作废高亮显示。

/pattern<Enter> :向下查找pattern匹配字符串

?pattern<Enter> :向上查找pattern匹配字符串,使用了查找下令之后,使用如下两个键快速查找:

n :根据统一偏向继续查找

N :根据反偏向查找

/^abc<Enter>       # 查找以abc最先的行 
/test$<Enter>      # 查找以abc竣事的行 
//^test<Enter>     # 查找^tabc字符串
:s/vivian/sky/     # 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g    # 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/  # 替换第 n 行最先到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g # 替换第 n 行最先到最后一行中每一行所有 vivian 为 sky
                   #(n 为数字,若 n 为 .,示意从当前行最先到最后一行)
:%s/vivian/sky/  #(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g #(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

:s#vivian/#sky/#      # 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ 
#(使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

:s/str1/str2/          # 用字符串 str2 替换行中首次泛起的字符串 str1
:s/str1/str2/g         # 用字符串 str2 替换行中所有泛起的字符串 str1
:.,$ s/str1/str2/g     # 用字符串 str2 替换正文当前行到末尾所有泛起的字符串 str1
:1,$ s/str1/str2/g     # 用字符串 str2 替换正文中所有泛起的字符串 str1
:g/str1/s//str2/g      # 功效同上

//<abc  # 查找以test最先的字符串 
/abc/>  # 查找以test竣事的字符串 

$       # 匹配一行的竣事
^       # 匹配一行的最先
/<      # 匹配一个单词的最先,例如//<abc<Enter>:查找以abc最先的字符串
/>      # 匹配一个单词的竣事,例如/abc/><Enter>:查找以abc竣事的字符串 

*       # 匹配0或多次
/+      # 匹配1或多次
/=      # 匹配0或1次

.       # 匹配除换行符以外随便字符    
/a      # 匹配一个字符
/d      # 匹配任一数字      
/u      # 匹配任一大写字母

[]      # 匹配局限,如t[abcd]s 匹配tas tbs tcs tds
/{}     # 重复次数,如a/{3,5} 匹配3~5个a
/( /)   # 界说重复组,如a/(xy/)b 匹配ab axyb axyxyb axyxyxyb ...
/|      # 或,如:for/|bar 示意匹配for或者bar

/%20c   # 匹配第20列
/%20l   # 匹配第20行

# 切换 向上和向下搜索
# 输入 / 摁 Enter键,再摁 n 字母键向,下查找
# 输入 ? 摁 Enter键,再摁 n 字母键向,上查找

上面是全文搜索,下面是简朴的单行搜索

fx  # 到第一个x
2fx # 到第二个x
Fx  # 往回查找

vim搜索时默认是大小写敏感的,要想实现大小写不敏感的搜索,若是仅仅是对当前打开的文件设置就用 :set ignorecase ,而永久性的设置可以到vimrc设置文件中添加一行

set ignorecase

文件搜索

搜索文件有多个插件 junegunn/fzf.vim 、 Yggdroot/LeaderF 、 wincent/command-t 和 kien/ctrlp.vim ,这里使用的 Ctrlp 使用 Ctrl p 启动文件搜索。

<ctrl+p> # 启动搜索

插件列表

这内里所有的插件,并不是都放到了我的 .vimrc 文件中 .vimrc 设置文件中,是我小我私家喜欢而且习惯的设置。

插件治理工具
  • junegunn/vim-plug
  • VundleVim/Vundle.vim
主题气概
  • vim-colors-solarized 主题气概素雅 solarized
  • molokai 主题气概多彩 molokai
  • phd 主题气概复古 phd
使用界面
  • Mango A nice color scheme
  • VimAirline 美化状态栏偏好设置
  • vim-powerline 美化状态栏
  • vim-airline 美化状态栏和设置
  • vim-airline-themes airline主题
治理项目
  • NERDTree Manage your project files
  • VimFugitive Git 集成
  • VimGitGutter Git 集成,强烈推荐!
  • EditorconfigVim Shared coding conventions
  • command-t 文件搜索
  • vim-signature 书签可视化的插件
  • BOOKMARKS--Mark-and-Highlight-Full-Lines 它可以让书签行高亮
  • tagbar 方式舆图导航
  • indexer.tar.gz 自动天生标签并引入
    • DfrankUtil 上面插件,依赖这个插件
    • vimprj 上面插件,依赖这个插件
  • ctrlsf.vim 上下文插件,例如搜素到关键字,中心缩略,展示一段上下文
  • vim-multiple-cursors 多光标编辑功效
  • gen_tags.vim 天生,加载,更新ctags/gtags文件。
  • ybian/smartim 解决中文输入法下面无法使用下令
  • Yggdroot/LeaderF 模糊查找神器,性能逾越ctrlp
代码誊写
  • NERDCommenter 注释更容易
  • DrawIt ASCII art 气概的注释
  • VimTrailingWhitespace 突出尾随空格
  • Syntastic 语法检查
  • VimEasyAlign 调整部门代码
  • VimMultipleCursors Write on multiple lines easily
  • VimJsBeautify Reformat JavaScript, HTML and JSON files
  • VimYankStack Iterate over yanked stack on paste
  • VimSurround Quoting and parenthesizing
  • YouCompleteMe 键而全的、支持模糊搜索的、高速补全的插件
  • VimForTern Smart JavaScript autocompletion
  • VimNode Navigate through node.js code/modules
  • VimLint Linter used by syntastic for VimL
  • VimLParser VimL parser (required by VimLint)
  • emmet-vim 提高HTML和CSS的事情流
  • vim-cpp-enhanced-highlight C++ 语法高亮支持
  • vim-indent-guides 相同缩进的代码关联起来
  • vim-fswitch 接口文件(MyClass.h)与实现文件(MyClass.cpp)快捷切换的插件
  • MiniBufExplorer 显示多个 buffer 对应的 window
  • wildfire.vim 快捷键选中 <> 、 [] 、 {} 中心的内容
  • gundo.vim 让你有机遇打消最近一步或多步操作
  • vim-easymotion 快速移动,两次 <leader> 作为前缀键
  • Shougo/neocomplete.vim 壮大的自动补全插件
  • vim-instant-markdown 编辑 markdown 文档,自动开启 firefox 为你显示 markdown 最终效果
  • fcitx.vim 中/英输入平滑切换
  • othree/xml.vim 中/提供快速编写xml/html的能力,如标签自动闭合等
  • pangloss/vim-javascript 提供js代码的智能缩进,仅使用了他的indent功效
代码阅读
  • 语法高亮
    • vim-polyglot 支持常见的语法高亮
    • VimJson JSON 高亮和隐藏引号
    • vim-jsx JSX语法高亮
    • YaJS JavaScript 语法 (ES5 and ES6)
    • vim-css3-syntax CSS3 高亮,包罗stylus,Less,Sass
    • vim-css-color css高亮颜色
    • gko/vim-coloresque css高亮颜色
    • ScssSyntax SCSS syntax
    • HTML5 HTML5 syntax
    • Stylus Stylus 代码高亮
  • JavaScriptLibrariesSyntax 语法高亮的着名的JS库
  • ultisnips 模板补全插件
  • vim-protodef 凭据类声明自动天生类实现的代码框架

参考资料

  • vim 大冒险:在游戏中学习 vim
  • VimScript学会若何自界说Vim编辑器
  • 一起来说 Vim 语
  • css-color stopped working after updating Vim to 7.4
  • 我的VIM设置及说明【K-VIM】
  • 简明 VIM 练级攻略
  • Vi中的正则表达式
  • vi替换字符串(zz)

其它人的vimrc设置

  • luofei614/vim-plug
  • yangyangwithgnu/use_vim_as_ide
  • fingertap/vimrc
  • barretlee/autoconfig-mac-vimrc


原文来自:https://github.com/jaywcjlove/vim-web/blob/master/README.md


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入

3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/3730

  • 发表于 2021-02-11 16:52
  • 阅读 ( 221 )
  • 分类:互联网

0 条评论

请先 登录 后评论
图王章征军
图王章征军

734 篇文章

你可能感兴趣的文章

相关问题