• 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 搞定。 真是无奈

  • 相关阅读:
    [LeetCode] Contains Duplicate 包含重复值
    [LeetCode] 281. The Skyline Problem 天际线问题
    Qt resizeEvent 控件居中设置
    [LeetCode] 214. Shortest Palindrome 最短回文串
    Qt Creator Shortcuts 快捷键大全
    Qt SizePolicy 属性
    [LeetCode] 30. Substring with Concatenation of All Words 串联所有单词的子串
    [LeetCode] 213. House Robber II 打家劫舍之二
    [LeetCode] 212. Word Search II 词语搜索之二
    [LeetCode] 18. 4Sum 四数之和
  • 原文地址:https://www.cnblogs.com/everest33Tong/p/5788750.html
Copyright © 2020-2023  润新知