• vi及缩进设置


    set autoindent,把当前行的对起格式应用到下一行;

    set smartindent,智能的选择对起方式;

    set tabstop=4,设置tab键为4个空格;

    set shiftwidth=4,将换行自动缩进设置成4个空格;

    PS:
    自动缩进有两个选项: 
    代码:
        set autoindent 
        set cindent
       
    autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是"自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。 

    cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

    第二篇文章

    相信大部分在linux下使用Vi的朋友和我一样,主要都是用vi来编辑程序源代码。而事实上Vi也提供了针对这方面的重要功能,主要包括有:缩进控制、符号匹配(如'{'和'}' )以及使用ctags。
    1、缩进控制
    (1)使用自动缩进功能
    :set autoindent 或 :set ai
    (2)当已经使用了自动缩进功能后,在插入模式下(注意不是命令模式下)
    Ctrl+t 对行实现另一级别的缩进
    Ctrl+d 取消一个级别的缩进
    (3)在命令模式下
    > 将行向右移动8个空格
    n> 将连续n行向左或向右缩进8个空格
    如当程序代码中有连续5行没有缩进,要进行缩进更正,使用5>>就可以实现这5行均缩进。
    2、特殊的搜索匹配命令
    针对开括号字符(、[、{和
    (1)当光标位于上述字符中的任何一个时,命令模式下按下%,光标将移动到与之匹配的开括号或闭括号处,若没有移动到相应的符号处,则肯定是程序中有输入有错误。
    (2)另一发现匹配括号的设置选项如下
    :set showmatch 或 :set sm
    设置好后,当我们输入)或}时,光标在返回当前位置之前将短暂地移回到相匹配的(或{处,若不存在相匹配的括号字符,终端则会发出嘟嘟的声音。
    3、使用ctags标志
    Windows下有source insight工具阅读程序代码功能十分强大,使用也相当方便,尤其是针对像阅读多文件源程序时如linux内核源码等;但在linux下呢,在网上听说过有source navigator这一工具和Vi+Ctags,不过前者配置似乎比较麻烦,自己更不曾使用过,而后者也是最近开始使用,发现这类轻量级武还是甚为好用的,让人不得不折服于unix所推崇的利用多个实用工具软件组合完成任务的哲学,vi+ ctags便是很好的证明。
    在vi内部使用
    :!ctags file.c 该命令将在当前目录下创建一个tags名称文件,文件中包括了file.c文件中定义的函数信息。
    :!ctags *.c 创建当前目录下所有C源文件的tags文件
    :tag name 可以定位到name函数定义处 
    当然,要熟悉使用vi+ctags,还远不止以上用法,关键还在于多用,呵呵 :p
    4、编写Vim配置文件.vimrc
    上述提到的各种Vi设置命令在我们每次进入vi后必须重新设置才能生效,如果希望每次进入vi后自动进行设置而不用显式命令设置,就需编写vi配置文件。
    vi --version // 可以查看其配置文件所在目录,通常在主目录下如/home/username/.vimrc
    如果主目录下不存在该文件,则在主目录下创建.vimrc文件,在其中添加相设置的命令,针对C源程序一般其内容可以设置如下:(呵呵,强烈推荐使用vim配置文件 :p)
    :set cindent
    :set shiftwidth=4
    :set ts=4

    补充一点关于vim的查找替换功能总结

    vim查找替换功能总结

    1,简单替换表达式

    1. 搜索并替换。输入:[range]s/from/to/[flags]命令可以搜索匹配的字符串并且替换为指定的
      字符串。这是一个稍微复杂的命令。其中[range]是一个可选项,用来指定搜索替换的范围。[flags]也是一个可选项,用来指定搜索替换的处理方
      式。所以这个命令的简单形式是:s/from/to/。
      1. 搜索替换的范围。如果没有指定范围,则只在当前行进行搜索替换。
        1. 在所有行进行搜索替换。范围符号%表示在所有行进行搜索替换。:%s/from/to/就是在全文查找from并替换为to。
        2. 在指定的行上进行搜索替换。:1,50s/from/to/表示在第1行和第50行之间(包括1和50行)进行搜索和替换。:45s/from/to/表示仅仅在第45行进行搜索和替换。而"1,$"行号范围和“%“是等价的。



    替换命令可以在全文中用一个单词替换另一个单词:

    :%s/four/4/g


    “%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可

    如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “<” 来指定匹配单词开头:

    :%s/<four/4/g

    显然,这样在处理 “fourty” 的时候还是会出错。用 “>” 来解决这个问题(全词匹配):

    update 2013.8.13

    上传两张图:

    今天不知道按到哪个按键,写的代码全是被选中状态,很影响阅读。查看一些资料之后,随便vi一个文件,使用 :nohlsearch 搞定。 真是无奈

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/everest33Tong/p/5788750.html
Copyright © 2020-2023  润新知