【vim】技巧總結

一直在用gvim,但說實在的,掌握的技巧太少,需要慢慢積累,這個貼子就持續更新吧~~~

 

快捷鍵:

在.vimrc 文件中加入以下快捷鍵

:map cc :s/^/\/\//<enter>
 
:map qq :q<enter>

:map bb :w!<enter>

:map dl i`uvm_info(get_type_name(),$sformatf("",),UVM_LOW)<ESC>
:map ggVG<enter>

打開vim 文件后,按Esc后鍵入qq,則會關閉文件;鍵入bb,則會保存文件。


2. 當要在文件中鍵入如下內容時,快捷方法如下:

sram0_addr
sram1_addr
sram2_addr

    Step1: coding好第一行(sram0_waddr;

    Step2: 先按Esc再鍵入qa;(用register記錄,名字為a,可以取其他名字)

    Step3: yy (複製第一行)

    Step4: p (粘貼)

    Step5:  L鍵移動光標到數字上面(比如sram0_waddr),接著按ctrl+a

    Step6:  q 離開記錄;

    Step7: number @a;(其中number替換為實際要複製的次數,比如複製20次,就按20@a  , a表示register a


在log 中撈 打到的特定assertion 

find . -name "*.log" | xargs grep "C_special_cov_assert" | sed '/0 match/d' > ./a.log

其中C_special_cov_assert為特定的assertion。


% :   跳转到与当前符号匹配的符号处,如(),[],{}

dG : 删除当前行至行尾

   :搜索下一个光标所在位置的字符的位置,并将光标移到下一处 可结合数字使用

   :搜索上一个光标所在位置的字符的位置,并将光标移到上一处 可结合数字使用

选取内容

v进入字符可视化模式   (移动一次选择一个字符)
V进入可视化模式
ctrl-V进入可视化模式
gv选中前一次可视化模式时选择的文本
o光标移动到选中文本的另一结尾
O光标移动到选中文本的另一角落

 

        :%y+   :全选    

        ggVG     :  全选

let mapleader=","

" 设置快捷键,y将选中文本块复制至系统剪贴板 
vnoremap <Leader>y "+y 
" 设置快捷键,p将系统剪贴板内容粘贴至 vim 
nmap <Leader>p "+p

在vim中"+"这个寄存器就表示共享的剪贴板.所以要从其它地方复制到vim中,可用"+p这个操作来完成粘贴,同样,在要vim中copy东东到其它地方时,可用"+y来完成

   共享剪贴板  

    set clipboard+=unnamed 

" 选中模式 Ctrl+c 复制选中的文本
 

 vnoremap <c-c> "+y

" 普通模式下 Ctrl+c 复制文件路径

  nnoremap <c-c> :let @+ = expand('%:p')<cr>


" Shift + Insert 插入系统剪切板中的内容

   noremap <S-Insert> "+p

如何修改主题:

             1. 通过修改vim配置下的vimrc文件  (#:vi /etc/vim/vimrc);
             2. 在里面加入一句:colorscheme 主题名 ,比如 colorscheme evening
             3. 保存退出即可。


VIM中进行文本替换:

 

    1.  替换当前行中的内容:    :s/from/to/    (s即substitude)

        :s/from/to/     :  将当前行中的第一个from,替换成to。如果当前行含有多个

                                     from,则只会替换其中的第一个。

        :s/from/to/g    :  将当前行中的所有from都替换成to。

        :s/from/to/gc   :  将当前行中的所有from都替换成to,但是每一次替换之前都

                                    会询问请求用户确认此操作。

 

        注意:这里的from和to都可以是任何字符串,其中from还可以是正则表达式。

 

    2.  替换某一行的内容:      :33s/from/to/g

        :.s/from/to/g   :  在当前行进行替换操作。

        :33s/from/to/g  :  在第33行进行替换操作。

        :$s/from/to/g   :  在最后一行进行替换操作。

 

    3.  替换某些行的内容:      :10,20s/from/to/g

        :10,20s/from/to/g   :  对第10行到第20行的内容进行替换。

        :1,$s/from/to/g     :  对第一行到最后一行的内容进行替换(即全部文本)。

        :1,.s/from/to/g     :  对第一行到当前行的内容进行替换。

        :.,$s/from/to/g     :  对当前行到最后一行的内容进行替换。

        :'a,'bs/from/to/g   :  对标记a和b之间的行(含a和b所在的行)进行替换。

                                其中a和b是之前用m命令所做的标记。

 

    4.  替换所有行的内容:      :%s/from/to/g

        :%s/from/to/g   :  对所有行的内容进行替换。

 

    5.  替换命令的完整形式:    :[range]s/from/to/[flags]

        5.1 s/from/to/

            把from指定的字符串替换成to指定的字符串,from可以是正则表达式。

        5.2 [range]

            有以下一些表示方法:

            不写range   :  默认为光标所在的行。

            .           :  光标所在的行。

            1           :  第一行。

            $           :  最后一行。

            33          :  第33行。

            'a          :  标记a所在的行(之前要使用ma做过标记)。

            .+1         :  当前光标所在行的下面一行。

            $-1         :  倒数第二行。(这里说明我们可以对某一行加减某个数值来

                            取得相对的行)。

            22,33       :  第22~33行。

            1,$         :  第1行 到 最后一行。

            1,.         :  第1行 到 当前行。

            .,$         :  当前行 到 最后一行。

            'a,'b       :  标记a所在的行 到标记b所在的行。

 

            %           :  所有行(与 1,$ 等价)。

 

            ?chapter?   :  从当前位置向上搜索,找到的第一个chapter所在的行。(

                            其中chapter可以是任何字符串或者正则表达式。

            /chapter/   :  从当前位置向下搜索,找到的第一个chapter所在的行。(

                            其中chapter可以是任何字符串或者正则表达式。

 

            注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏

            移量。

 

        5.3 [flags]

            这里可用的flags有:

 

            无      :  只对指定范围内的第一个匹配项进行替换。

            g       :  对指定范围内的所有匹配项进行替换。

            c       :  在替换前请求用户确认。

            e       :  忽略执行过程中的错误。

 

            注意:上面的所有flags都可以组合起来使用,比如 gc 表示对指定范围内的

            所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

 

 

 

ref: 

vim 高级使用技巧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值