vim的笔记和vim(java)的配置

echo ----vim----
:set nu
:vs :sp 分屏

a/i/o A/I/O 进入插入模式

v 是块状选择 V是以行为单位选择 ctrl+v是区域选择 y是复制,x是剪切, 然后p是粘贴 d是剪贴
viw 首先v进入选择模式 iw选择当前单词 但是不带空格;vaw选择当前单词,(带空格)
vi" 首先v进入选择模式, i" 选择当前行 ”“包含的内容,然后进行操作; va"是选择""包含的内容,包含”“。

在编辑模式下:ctrl+h 删除上一个字符 ctrl+w 删除上一个单词 crtl+u 删除当前行 也可以在终端下使用(ctrl+a 快速定位到开头)

ctrl+[ 或者 ctrl +c 快速切换到normal模式 代替ESC

gi 快速跳转到你最后一次编辑的地方并进入编辑模式

w/W 快速移动到下一个单词的开头 e/E快速移动到上一个单词的结尾 b/B快速移动到上一个单词的开头(如果移动到上一个单词的结尾,那么就是be, 如果想移动到单词的结尾的话,那么就是we)
(小写和大写w、e、b的区别在于,大写的话会以空格为分隔符

:syntax on 设置高亮

快速搜索
使用 f{char} 快速移动到char字符上,t移动到char的前一个字符,如果第一次没有搜到,那么使用分号;搜索下一个; 使用逗号,搜索上一个
f是往后搜索,F是往前搜索

0是移动到行首 $是移动到行尾 ^是快速移动到行首(没有空格的地方,与0的区别在于。0是真的行首 ^是非空行首)

使用()在句子间移动,{}在段落之间移动

gg/G 移动到文件开头和结尾,你可以使用ctrl+o 快速返回
H/M/L 跳转到屏幕的开头(head) 中间(middle)和结尾(lower)

ctrl+u ctrl+f 上下翻页, zz把屏幕置为中间

在normal 模式下快速删除
x 快速删除一个字符,2x删除2个字符;
d配合文本对象快速删除一个单词daw
d和x都可以搭配数字来执行
dw 是从光标开始到单词结尾的删除(包含删除空格)
daw 是删除光标所在的单词(包含删除空格) diw是删除光标所在的单词(不删除空格)
d2aw 删除2个单词,可搭配数字使用
dd 是删除行 5dd是删除5行
dt " 是从光标下到“之间的内容删除掉
d0 d$ 快速删除到开头/行尾

快速修改
r(replace)快速修改 2r是同时修改2个单词 R
s 是删除单个单词并且进入插入模式,2s 删除2个单词并且进入插入模式, S是删除正行并且进入插入模式
c 也是删除并且进入插入模式, cw 从光标下开始删除单词并且进入插入模式 caw删除光标下单词并且进入插入模式 ct” 从光标下到“开始删除,然后进去插入模式 c to " ci" 快速删除当前行”“包含的内容,然后进入插入模式; ca" 快速删除当前行”“包含的内容,包含""

r是修改单个字母 s是修改多个字母并且进入插入模式 c是配合单词 cw caw ct来使用

查询
使用/ 或者 ?进行前向或者反向搜索
使用n/N跳转到下一个或者上一个匹配
使用或者#进行当前单词的前向匹配和后向匹配
(当时会用?和#进行后向匹配的时候,n是往上走,N是往下走,跟/和
相反了)

搜索替换
替换 :% s/old/new/g(g是全局替换 c是确认后替换,n是报告匹配的次数而不替换,可以用来查询匹配次数) (%是全部 可以是数字 1-10;表示1到10行)
统计个数 :% s/new//n 统计个数
也可以使用正则表达式替换

Buffer切换
使用:ls 会列举当前缓冲区,然后使用:b n跳转到第n个缓冲区
:bpre :bnext :bfirst :blast 上一个 下一个 第一个 最后一个
或者使用:b buffer_name 加上tab补全来跳转

:vs 左右分屏 :sp 上下分屏 ; ctrl+w + w(在窗口间循环切换) ctrl+w+h、j、k、l 切换到左边、下边、上边、右边的窗口
:ctrl+w +HJKL把当前窗口往左边、下边、上边、右边移动
[N]ctrl+w+_ 设置活动窗口的高度为N行
[N]ctrl+w+| 设置活动窗口的高度为N列

Tab标签页操作
:tabe {filename} 在新的标签页打开{filename}文件,也可以直接:tabe 新建一个空的标签页
:tabc 关闭当前标签页
:tabo 只保留活动标签页,关闭所有其他标签页
:tabn {N} 或者 {N} gt 切换到编号为{N}的标签页
:tabn 或者gt 切换到下一个标签页
:tabp 或者gT切换到上一个标签页

text object - 文本对象

vim复制粘贴与寄存器的使用
yim 复制一个单词 yy复制一行 p是粘贴

insert模式下复制粘贴会缩进的问题

  1. 设置 :set paste 然后粘贴 最后:set nopaste

vim复制到系统剪贴板
首先查看vim是否支持clipboard( vim --version | grep clipboard) 如果clipboard前面是+号就支持
然后复制 v "+y 就可以完成复制了

vim 宏
qa 进入编辑模式,然后修改,然后EST进入normal模式,按q退出录制
然后进入下一行@a 把录制的内容粘贴
也可以批量 VG 选择所有,然后:normal @a 批量操作
感觉就是录制很多命令,然后一行一行的执行录制的命令
也可以 VG选择所有只有 :normal I#
:ctrl +P 现实上一次执行的命令

常见的三种补全类型
ctrl+n和ctrl+p 补全单词, 使用N(shift+n)进行下一个,P(shift+p)进行上一个选择
ctrl+x ctrl+f 补全文件名;继续使用ctrl+n ctrl+p 进行下一个或者上一个进行赛选
ctrl+x ctrl+o 补全代码,需要开启文件类型检查,安装插件

修改配色方案
:colorscheme <ctrl+d> 显示所有配色
:colorschema 配色

映射
:map 新的快捷键 要映射的快捷键 eg: :map - x 把x的功能隐射到-号上去
vim 常用模式 normal/visual/insert都可以映射
用:nmap :vmap :imap 定义映射只在normal、visual、insert分别有效
:imap <c-u> <Esc>ddi 把insert模式下的删除一行映射到ddi

vim 提供了非递归映射,这些命令不会递归解析
使用*map 对应的 nnoremap vnoremap inoremap
任何时候你都应该使用非递归映射,拯救自己和插件作者

nerdtree目录树快捷键
o 打开文件
go 打开文件,但是光标还在nerdtree
t 打开文件,创建的是tab;T是打开文件,创建的是tab,光标停留在nerdtree
x 收起当前打开的目录 X收起所有打开的目录
P 跳转到当前的根路径 p跳转到光标所在的上一级路径 px 关闭当前根目录 PX关闭整体
u 设置上级目录为根目录 U设置上级目录为根目录,但是维持打开状态
C 将根路径设置为光标所在的目录
r 刷新光标所在的目录 R刷新当前根路径
I显示或者不显示一场文件
q 关闭nerdtree
A 全屏显示nerdtree ,或者关闭全屏显示
m 新建文件或者文件夹
:NERDTree 打开目录树

gcc 添加注析:
-----------vim的配置 (使用 vim-plug 管理工具)------------
set number
set modifiable
syntax on
"colorscheme SpaceVim

:nnoremap <c-h> <c-w>h
:nnoremap <c-j> <c-w>j
:nnoremap <c-k> <c-w>k
:nnoremap <c-l> <c-w>l

" 安装插件 使用插件管理工具 vim-plug "
call plug#begin('~/.vim/plugged')
"
Plug 'mhinz/vim-startify'
" 目录树
Plug 'preservim/nerdtree'
"
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'yggdroot/indentline'
"Plug 'ctrlpvim/ctrlp.vim' # 搜索功能,感觉不好用
"Plug 'easymotion/vim-easymotion'
"Plug 'junegunn/fzf.vim' "搜索
" 主题风格
Plug 'w0ng/vim-hybrid'
" 大纲
Plug 'majutsushi/tagbar'
" 补全功能
" if has('nvim')
" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
" else
" Plug 'Shougo/deoplete.nvim'
" Plug 'roxma/nvim-yarp'
" Plug 'roxma/vim-hug-neovim-rpc'
" endif
" 格式化
Plug 'sbdchd/neoformat'
" 快速注析
Plug 'tpope/vim-commentary'
Plug 'artur-shaik/vim-javacomplete2'
let g:deoplete#enable_at_startup = 1

call plug#end()

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif

"let g:ctrlp_map = '<c-p>'

"nmap ss <Plug>(easymotion-s2)

set background=dark
colorscheme hybrid

nmap <F8> :TagbarToggle<CR>

" 补全java代码
let mapleader=","
autocmd FileType java setlocal omnifunc=javacomplete#Complete
nmap <F4> <Plug>(JavaComplete-Imports-AddSmart)
imap <F4> <Plug>(JavaComplete-Imports-AddSmart)
nmap <F5> <Plug>(JavaComplete-Imports-Add)
imap <F5> <Plug>(JavaComplete-Imports-Add)
nmap <F6> <Plug>(JavaComplete-Imports-AddMissing)
imap <F6> <Plug>(JavaComplete-Imports-AddMissing)
nmap <F7> <Plug>(JavaComplete-Imports-RemoveUnused)
imap <F7> <Plug>(JavaComplete-Imports-RemoveUnused)
"
"nmap <leader>jI <Plug>(JavaComplete-Imports-AddMissing)
"nmap <leader>jR <Plug>(JavaComplete-Imports-RemoveUnused)
"nmap <leader>ji <Plug>(JavaComplete-Imports-AddSmart)
"nmap <leader>jii <Plug>(JavaComplete-Imports-Add)
"
"imap <C-j>I <Plug>(JavaComplete-Imports-AddMissing)
"imap <C-j>R <Plug>(JavaComplete-Imports-RemoveUnused)
"imap <C-j>i <Plug>(JavaComplete-Imports-AddSmart)
"imap <C-j>ii <Plug>(JavaComplete-Imports-Add)
"
"nmap <leader>jM <Plug>(JavaComplete-Generate-AbstractMethods)
"
"imap <C-j>jM <Plug>(JavaComplete-Generate-AbstractMethods)
"
nmap <leader>jA <Plug>(JavaComplete-Generate-Accessors)
nmap <leader>js <Plug>(JavaComplete-Generate-AccessorSetter)
nmap <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter)
nmap <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter)
nmap <leader>jts <Plug>(JavaComplete-Generate-ToString)
nmap <leader>jeq <Plug>(JavaComplete-Generate-EqualsAndHashCode)
nmap <leader>jc <Plug>(JavaComplete-Generate-Constructor)
nmap <leader>jcc <Plug>(JavaComplete-Generate-DefaultConstructor)
"
"imap <C-j>s <Plug>(JavaComplete-Generate-AccessorSetter)
"imap <C-j>g <Plug>(JavaComplete-Generate-AccessorGetter)
"imap <C-j>a <Plug>(JavaComplete-Generate-AccessorSetterGetter)
"
"vmap <leader>js <Plug>(JavaComplete-Generate-AccessorSetter)
"vmap <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter)
"vmap <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter)
"
nmap <silent> <buffer> <leader>jn <Plug>(JavaComplete-Generate-NewClass)
nmap <silent> <buffer> <leader>jN <Plug>(JavaComplete-Generate-ClassInFile)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354