【gvim使用keil编译,和一些VIM常用操作,和一些快捷键】(不再更新)

后面有更新的话在gitee更新,本文不再更新, gitee链接

一、keil编译_vimrc配置及说明

快捷键映射:

  • 前缀键+kb    :编译
  • 前缀键+kr    :重新编译
  • 前缀键+kd    :下载
    ps:默认前缀键为 '\'键,且有时间限制,要按快点,新手注意。。。
    ps2:该配置重载_vimrc无效,需要重新打开gvim
    ps3:前缀键也可以再前面加数字以多次操作,在配合Tagbar使用时很有效
"-----------------------------keil------------------------------
function MakeKeilTarget(options)
    let l:target = ''
    let l:target51 = ''
    wa
    echo '当前目录:'expand('<sfile>:p')
    "-------------------------MDK-------------------------
    if !empty(glob('*.uvprojx'))
        let l:target =  glob('*.uvprojx')
    elseif !empty(glob('../*.uvprojx'))
        let l:target =  glob('../*.uvprojx')
    elseif !empty(glob('../../*.uvprojx'))
        let l:target =  glob('../../*.uvprojx')
    endif
    "-------------------------8051-------------------------
    if !empty(glob('*.uvproj'))
        let l:target51 =  glob('*.uvproj')
    elseif !empty(glob('../*.uvproj'))
        let l:target51 =  glob('../*.uvproj')
    elseif !empty(glob('../../*.uvproj'))
        let l:target51 =  glob('../../*.uvproj')
    endif
    
    if !empty(l:target)
        execute ':silent !uv4 '.a:options.l:target.' -j0 -o "\%TEMP\%/mdk_log.txt"'
        "execute ':!uv4 '.a:options.l:target.' -o "\%TEMP\%/mdk_log.txt" && type "\%TEMP\%\mdk_log.txt" && pause'
		    execute ':silent !type "\%TEMP\%\mdk_log.txt" && pause'
    elseif !empty(l:target51)
        execute ':silent !uv4 '.a:options.l:target51.' -j0 -o "\%TEMP\%/mdk_log.txt"'
        "execute ':!uv4 '.a:options.l:target51.' -o "\%TEMP\%/mdk_log.txt" && type "\%TEMP\%\mdk_log.txt" && pause'
		    execute ':silent !type "\%TEMP\%\mdk_log.txt" && pause'
    else
        echo 'Target not found!'
    endif
endfunction
"快捷键映射
nnoremap <leader>kb :call MakeKeilTarget('-b ')<CR>
"nnoremap <leader>kr :call MakeKeilTarget('-b -z ')<CR>
nnoremap <leader>kr :call MakeKeilTarget('-cr ')<CR>
nnoremap <leader>kd :call MakeKeilTarget('-f ')<CR>

配置说明

        该配置在当前编辑目录及再向上两级目录,寻找uvproj/uvprojx文件,然后使用命令行编译。如果你的目录结构和这个不同,要自行在MakeKeilTarget()函数中添加你的相对路径。配置完_vimrc文件后需要重新启动gvim,使用:source刷新配置文件可能不起作用。
        重要:把keil的UV4.exe和gvim的gvim.exe文件所在目录分别添加到系统环境变量中,以确保编译指令可以正常执行和< win+r >快捷启动正常,编译前需要打开keil先把对应的源文件加入工程
        配置参考了github上一个私人配置,功能添加了以下几点:

  • 编译参数加了j0以不弹出GUI界面
  • 增加了对uvproj文件搜索
  • 打印了一次文件当前路径
  • 编译前执行wa保存所有文件更改
     
    测试正常:
    测试通过

二、vim一些快捷键记录

  • <CTRL+F>:向下翻页
  • <CTRL+B>:向上翻页
  • <CTRL+D>:向下翻半页
  • <CTRL+U>:向上翻半页
  • <CTRL+E>:向下滚动
  • <CTRL+Y>:向上滚动
  • < CTRL+ ] > :函数跳转-依赖ctags
  • < CTRL+ o >:跳转到上次光标
  • <CTRL+ i>:跳转到下次光标
  • < % >:跳转到匹配括号
  • < = >:格式化选中代码,可以最后一行留空,ggvG=格式化当前文件
  • < ma >:新建文件-依赖NERDTree,要在NERDTree列表里面操作
  • < gs >:以并列会话打开文件-依赖NERDTree,要在NERDTree列表里面操作
  • < gf >:打开头文件-依赖coc补全插件。
  • < gd >:跳转到定义函数或变量或宏或枚举等类型定义-依赖coc补全插件。
  • < :!cmd >:在cmd窗口执行命令"cmd",可以快捷启动一些程序
  • < term >:打开vim内置终端,exit退出,进入中断默认是插入模式,按<C+\>+<C+n>进入普通模式,以便于翻页查看 (按着<CTRL>不放手,先按反斜杠再按n)
  • 一个窗口/光标调整快捷键配置,可以在前面加数字跳到指定窗口:
    • < leader + s > :光标左移一个窗口
    • < leader + d >:光标右移一个窗口
    • < leader + j >:交换两个窗口位置
    • < leader + w >:窗口宽度调制-10
    • < leader + e >:窗口宽度调整+10
    • 鼠标调整,直接拖拉边框位置即可
set mouse = a
nnoremap <leader>s <C-W>h<CR>
nnoremap <leader>d <C-W>l<CR>
nnoremap <leader>j <C-W>x<CR>
nnoremap <leader>w :vertical resize -10<CR>
nnoremap <leader>e :vertical resize +10<CR>
  • 一个窗口会话保存快捷键配置
    • < F5 >:保存当前打开的会话布局到指定位置
    • < F6 >:调用保存在指定位置的窗口布局
      注意:不能保存一些插件的窗口,有冲突的话最好先关闭插件,调用布局后再开启,这个也可以通过gvim工具栏快捷操作
noremap <F5> :mksession! ~/.vim/manual_session.vim<CR>
noremap <F6> :source ~/.vim/manual_session.vim<CR>

三、vim常用操作

字符串替换

:%s/a/b/g      //文件内把字符串a替换成字符串b

多行操作

        < CTRL + v > 进入块操作选中要编辑部分,< I > 用大写的 i 进入插入模式,< ESC >完成,< d > 删除选中块

和win的剪贴板交换

        < "*y > 可视模式下选中内容后操作,注意前面有引号
        < "*p > 普通模式粘贴
        网上好像很多通过 + 寄存器复制粘贴,gvim8.2默认没有+寄存器,* 寄存器也可以,win剪贴板会更新这个寄存器,vim使用可视模式选中后 "*p 也可以更新这个寄存器
        (neovim有+寄存器)

:reg "查看当前寄存器里面内容"
:version "查看是否支持剪切板交换功能,clipboard前面是加号是支持,gvim8.2默认支持"

重复上次操作

< . > :重复上次操作,本质是个特殊的宏,非常实用的功能,一个点。可以记录一个命令和所有插入模式操作

自定义宏操作

< q >: 按 < q > 加一个字母 x 开始录制,再按< q >结束,可以记录期间命令和插入。< @ + x >调用,x 为任意字母,前面可以加数字调用N次
< CTRL + a > :数字加一,前面可以加数字调用N次
< CTRL + x > 数字减一,前面可以加数字调用N次

书签操作

< m > :按< m >加小写字母为局部书签,< m > 加大写字母为全局书签,注意书签记录后不会显示,可以用 :marks 命令查看当前书签。按< ` > 加书签字母打开书签位置,注意是数字1左边带波浪号那个点。

大小写转换

<gu>:大写转小写,需要选中后按,或者在gu后面跟范围,比如跟w是单词转换到小写
<gU>:小写转大写,用法同上

buffer(标签页)

这里并没有使用buffer插件,感觉默认就很好了

  • 查看当前buffer列表,前面的标号即id号:
:ls
  • 跳转到指定buffer,如:b1,即跳转到id号为1的buffer:
:buffer[id]
:b[id]
  • 删除指定buffer,如:bd1,即删除id号为1的buffer
:bdelete[id]
:bd[id]

四、语法检测和自定义关键字

        语法检查使用coc插件

五、一些vim学习资料和网站

参考

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值