zoukankan      html  css  js  c++  java
  • vimtutor 拾遗

     断断续续的,使用vim已经有大概4年时间,但一直停留在很低的使用层面。对于key的map,let等命令还是不懂。对插件的使用也只是停留在ctags和csope。

    最近手头一些事情总算快要告一段落,趁这个时间点,多学点vim的知识。先从vim自带的教程开始。每天大概花半个小时学习,然后做好笔记。ok,开始!

    学习vim的捷径:Do not try to memorize, learn by usage.

    删除操作:  d [number] motion

    dw: 删除整个单词,包括最后一个字符(分界符,比如空格)。此时光标在下一个单词首字母上

    de: 删除整个单词,但保留最后一个字符。此时光标在下一个单词首字母前面

    d$: 删除从光标位置开始,直到行尾的所有内容

    替换操作: c [number] motion

    r: 修改单个字母 (r - replace)

    ce: 修改整个单词  (e - end of world). 相当于删除当前单词,然后进入插入模式。待一个单词输完后自动进入normal模式。

    c$: 修改直到当前行末尾

    cw: 修改当前单词

    撤销操作:

    u: 撤销上一次操作

    U: 撤销最近一次对整行的更改

    C+r: undo the undo's

    查找和替换(substantiate)操作

    /: 向下查找; n:下一个匹配项; N:上一个匹配项

    ?: 向上超找; n/N 同上

    /word\c : 可以在查找的时候忽略大小写

    :s/old/new :  用new替换第一个匹配到的old

    :%s/old/new :  用new替换每一行首次匹配到的old。也就是说,如果一行有多个old,只替换第一个

    :s/old/new/g : 和不加g的效果一样

    :%s/old/new/g : 全部替换,不论一行有多少个

    :%s/old/new/gc : 每一次替换前会confirm用户

    :#,#s/old/new/g :对某个范围内的内容进行替换操作

     可见,%s/old/new/gc 比较通用

    文件操作:

    w filename 将当前缓冲区内容写入到filename中

    截取文件中的部分写入到新文件: 1. 进入view模式,选中需要的文本; 2. 进入command模式,发现bottom line变为 :'<,'>; 3. 输入w filename;

    读取(Retrieving)外部内容到当前文件:

    1. 外部文件: r filename

    2. 读取外部命令的输出,这个很有用,在写文档的时候,可以直接保存某些命令的输出。 比如,r !ls -a

    杂项:

    查看当前行状态:C+g

    回到上一次操作的位置:C+o (非常有用,尤其是查找的时候,回到查找前的位置)

    a : append. 在当前单词尾部插入内容

    e: 按单词向后移动

    R:进入完全替换模式,跟按下键盘的insert键效果一样。

    帮助: help vimrc-intro

    自带命令的补全: :字母 C+d 会列出所有

    查看完整的用户手册:help user-manual

    ============= cookbook ======================

    1. 删除空白行

    需求场景:从网上copy的代码,经常有很多空白行

    解决办法::g/^$/d

    2. 删除vim中的^M标志

    http://blog.csdn.net/dadoneo/article/details/6076479

    命令::%s/Ctrl+v Ctrl+m//g

    如果替换后换行消失,可使用:

    :%s/Ctrl+v Ctrl+m/\r/g

  • 相关阅读:
    leetcode 131. Palindrome Partitioning
    leetcode 526. Beautiful Arrangement
    poj 1852 Ants
    leetcode 1219. Path with Maximum Gold
    leetcode 66. Plus One
    leetcode 43. Multiply Strings
    pytorch中torch.narrow()函数
    pytorch中的torch.repeat()函数与numpy.tile()
    leetcode 1051. Height Checker
    leetcode 561. Array Partition I
  • 原文地址:https://www.cnblogs.com/handt/p/2767777.html
Copyright © 2011-2022 走看看