vi & vim

vim 是进阶版的 vi ,

  vi 一共三种模式 ( 一般模式 , 编辑模式 , 指令列模式 )

    一般模式 : 以 vi 打开一个档案就直接进入了一般模式( 默认模式 ) , 在这个模式中 ,  你可以使用[ 上下左右 ]按键来移动光标 , 可以使用 删除字符

                       或删除整行来处理档案内容 , 也可以使用复制 , 粘贴来处理文件数据 .

    编辑模式 : 在一般模式下可以进行删除,复制,粘贴等动作,但是无法编辑文件内容。按下 [ i I o O a A r R ] 等任何一个字母后进入编辑模式 ,

                       通常在按下这些按键时 , 在画面左下方会有 [ INSERT 或 REPLACE ] ,如果要回到一般模式时,按 [ Esc ]

    指令列模式 :  在一般模式下 , 输入 [ : / ? ] 三个中的任何一个按钮 , 就可以将光标移动到最底下那一行。在这个模式中,可以提供 [ 搜索资料 ]的

                          动作,而读取,存盘,大量取代字符,离开 vi , 显示行号等等动作则是在此模式中达成的。

  快揭键 :

      一般模式 :

               h j k l ( 左 下 上 右 ) 对比 左右,  下上比较好记 . ( 这是移动光标 , 同时可以使用4j , 表示向下移动 4行 )

               ctrl + f ( 屏幕向下 移动一页 , 相当于 page down

               ctrl + b ( 屏幕向上 移动一页 , 相当于 page up              

               n <space> n表示数字 , 例如20 , 按下数字后再按空格键盘 , 光标会向右移动这一行的 n 个字符 .

               0 数字0 会将光标移动到这一行的行首 .

               $            会将光标移动到这一行的行末 .

               G           会将光标移动到档案的最后一行 .

               nG  n为数字 , 移动到这个档案的第 n 行 .

               gg   移动到这个档案的第一行 , 相当于  1G .

               n <Enter> 将光标向下移动 n 行 .

               /word 向光标之下寻找一个名称为 word的字符串 .     n 继续向下搜索

               ?word 向光标之上搜寻一个名称为word的字符串.      N 继续向上搜索

               :n1,n2s/word1/word2/g     n1与n2数字之间搜索 word1, 并将该字符串替换为word2 ( 其中内容必须真实存在,例如只有10行,而n2写20行就有问题了)

                                                             其中蓝色的s表示行的意思, g表示列的意思(如果省略g 则只替换每行中的第1个,之后的就不替换,有g则行中所有的都要替换)

               :1,$s/word1/word2g 从第一行到最后一行取代            

               :1,$s/word1/word2/gc 从第一行到最后一行取代 , 且在取代前显示提示字符给用户确认是否要取代c表示提示是否替换的意思

               x,X 删除字符  , x 向后删除一个字符 ( del ) , X 向前删除一个字符 ( [ backspace ] )

               nx 连续向后删除 n 个字符 , 10x .

               dd 删除游标所在的一整行

               ndd 删除游标所在的向下的 n 行

               d1G 删除光标所在到第一行

               dG   删除光标所在到最后一行

                d$ 删除光标所在到这行的最后一个字符

                 d0 删除光标所在到这行的第一个字符

                 yy 复制游标所在那一行

                 nyy n 为数字 , 复制光标向下的 n 行

                 y1G 复制到第一行

                 yG 复制到最后一行

                 y0 复制到行首

                 y$ 复制到行尾

                 p 为粘贴 , 在所在光标的下一行,粘贴

                 J 将光标所在的列与下一列合成一列

                 u 复原前一个动作 , 象 ctrl + z

                 [ Ctrl ] + r 重做上一个动作                             -->貌似不好使

                 . 重复之前的动作 ( 重复删除 , 重复粘贴 ) 按下小数点 . 就好了

      指令列模式 :                    ! ( 具有强制的含义 )

                 :w 将编辑内容写入磁盘.

                 :w! 若文件为只读 , 强制写入 ( 跟你有没有权限有关 )

                 :q 离开 vi

                 :q! 若档案修改过 , 强制离开 .

                 :wq 存储后离开 ( 上边两个命令的组合 )

                 :wq! 强制存储后离开

                 ZZ 若档案修改过 , 则保存离开 , 若未修改过  , 直接离开 .

                 :w [ filename ] 类似另存为 .

                 :n1,n2 w[filename] 将 n1,n2之间的内容存储为另一个文件

                 :! command 暂时离开 vi 查看指令情况

                 :set nu 设置行号

                 :set nonu 不设置行号


  vi 的保护功能 ( 当编辑文件时,  如果出现突然死机等情况时)

   vi 会有一个副本保存 .swp文件 , 可以通过这个 swp文件的 recover来判断是否将副本中的内容确认 .

   当打开刚刚突然死机时, 正在编辑的文件时, 会有不同选择 Read-only , Edit anyway ( 编辑原文件 ) ,recover( 将副本的内容确认原文件 )Delete(删除副本)

                                                                                                        Quit 直接退出 , Abort 忽略这个编辑行为 ( 有点类似 Quit )

  注意 : 如果你使用了 recover 功能,使用完后,系统不会自动删除 .swp文件, 所以如果你下次再打开这个文件的时候还会有提示,方法是 recover完之后

             自行手动删除 .swp文件。

  vim 额外功能 ( 使用 vi 时, 发现右下角显示目前光标所在的行和列 , 则就是 vim编辑器 , 现在大部分都是使用 vim )

      区块选择 ( 可以实现 ultraEdit 的选择一列 ) ( 按 Esc 返回 一般模式 )

      v 字符选择 , 经过字符的字符会选中

      V 行选择 , 经过的行选中

      [ ctrl + v ] 长方型选择 ( 类似 ultraEdit的选择列 )

      y 将选中的内容复制

      d 将选中的内容删除

      只能复制粘贴,不能多行编辑 (可以同时编辑多行, 因为这时候是在命令行模式, 所以要先前换到输入模式, 例如你用ctrl+v 选中1列, 按r, 并输入一个字母"o", 那么这列就都被替换成 o 了)

      编辑多个档案     ( vi test2.txt test3.txt  一次性打开几个档案 )

      :n 编辑下一个档案

      :N 编辑上一个档案

      :files 列出目前 VIM开启的所有档案

      多窗口功能

       :sp [ filename] 其中 filename可有可无 , 如果你想另外打开 filen , 则需要指定文件名 filename 

        ctrl + w 切换窗体

        将光标移动到哪个窗口 , 然后使用 :q 退出该窗口

    vim 的环境设置    

        :set nu      显示行号

        :set nonu 不显示行号

        :set hlsearch 显示搜索字符串高亮

        :set nohlsearch 不显示搜索字符串高亮

        :set autoindent 自动缩排

        :set noautoindent 不自动缩排

        :set backup 自动备份 , 生成一个 filename~的文件

        :set ruler 显示右下角状态情况

        :set showmode 是否显示左下角 INSERT等状态

        :set backspace = ( 0 ,1,2) 2 可以删除任意值 , 0,1 只能删除刚刚输入的数值.

        :set all 显示目前所有的状态值

        :set 显示与系统不同默认值的设置

        :syntax on 显示语法高亮

        :syntax off 关闭语法高亮

        :set bg = dark ( 显示不同的颜色色调 )

        .vimrc 这个文件是预设 vi 环境的文件 .

 

训练 vim 小游戏 http://vim-adventures.com/

不小心按到了


 ctrl + s    应对  ctrl + q

 ctrl + z    应对   fg

 

个人vim 环境设置

其中只需要在 vimrc_example.vim 这个文件中(摸板文件) 最后, 添加自己的个人设定情况就OK了, 具体设置如下 :

"------------------------------SET---------------------------------------
set nu
set autoindent
syntax on
set guifont=Lucida_Console:h12:cANSI
set tabstop=8

set viminfo='20,<500
"----------------------------End set-----------------------------------------


"-------------------------------------Desert Color--------------------------
" Vim color file
" Maintainer:    Hans Fugal <hans@fugal.net>
" Last Change:    $Date: 2004/06/13 19:30:30 $
" Last Change:    $Date: 2004/06/13 19:30:30 $
" URL:        http://hans.fugal.net/vim/colors/desert.vim
" Version:    $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $

" cool help screens
" :he group-name
" :he highlight-groups
" :he cterm-colors

set background=dark
if version > 580
    " no guarantees for version 5.8 and below, but this makes it stop
    " complaining
    hi clear
    if exists("syntax_on")
    syntax reset
    endif
endif
let g:colors_name="desert"

hi Normal    guifg=White guibg=grey20

" highlight groups
hi Cursor    guibg=khaki guifg=slategrey
"hi CursorIM
"hi Directory
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit    guibg=#c2bfa5 guifg=grey50 gui=none
hi Folded    guibg=grey30 guifg=gold
hi FoldColumn    guibg=grey30 guifg=tan
hi IncSearch    guifg=slategrey guibg=khaki
"hi LineNr
hi ModeMsg    guifg=goldenrod
hi MoreMsg    guifg=SeaGreen
hi NonText    guifg=LightBlue guibg=grey30
hi Question    guifg=springgreen
hi Search    guibg=peru guifg=wheat
hi SpecialKey    guifg=yellowgreen
hi StatusLine    guibg=#c2bfa5 guifg=black gui=none
hi StatusLineNC    guibg=#c2bfa5 guifg=grey50 gui=none
hi Title    guifg=indianred
hi Visual    gui=none guifg=khaki guibg=olivedrab
"hi VisualNOS
hi WarningMsg    guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar
"hi Tooltip

" syntax highlighting groups
hi Comment    guifg=SkyBlue
hi Constant    guifg=#ffa0a0
hi Identifier    guifg=palegreen
hi Statement    guifg=khaki
hi PreProc    guifg=indianred
hi Type        guifg=darkkhaki
hi Special    guifg=navajowhite
"hi Underlined
hi Ignore    guifg=grey40
"hi Error
hi Todo        guifg=orangered guibg=yellow2

" color terminal definitions
hi SpecialKey    ctermfg=darkgreen
hi NonText    cterm=bold ctermfg=darkblue
hi Directory    ctermfg=darkcyan
hi ErrorMsg    cterm=bold ctermfg=7 ctermbg=1
hi IncSearch    cterm=NONE ctermfg=yellow ctermbg=green
hi Search    cterm=NONE ctermfg=grey ctermbg=blue
hi MoreMsg    ctermfg=darkgreen
hi ModeMsg    cterm=NONE ctermfg=brown
hi LineNr    ctermfg=3
hi Question    ctermfg=green
hi StatusLine    cterm=bold,reverse
hi StatusLineNC cterm=reverse
hi VertSplit    cterm=reverse
hi Title    ctermfg=5
hi Visual    cterm=reverse
hi VisualNOS    cterm=bold,underline
hi WarningMsg    ctermfg=1
hi WildMenu    ctermfg=0 ctermbg=3
hi Folded    ctermfg=darkgrey ctermbg=NONE
hi FoldColumn    ctermfg=darkgrey ctermbg=NONE
hi DiffAdd    ctermbg=4
hi DiffChange    ctermbg=5
hi DiffDelete    cterm=bold ctermfg=4 ctermbg=6
hi DiffText    cterm=bold ctermbg=1
hi Comment    ctermfg=darkcyan
hi Constant    ctermfg=brown
hi Special    ctermfg=5
hi Identifier    ctermfg=6
hi Statement    ctermfg=3
hi PreProc    ctermfg=5
hi Type        ctermfg=2
hi Underlined    cterm=underline ctermfg=5
hi Ignore    cterm=bold ctermfg=7
hi Ignore    ctermfg=darkgrey
hi Error    cterm=bold ctermfg=7 ctermbg=1

"vim: sw=4
"-----------------------------------------End Color------------------------

     

      

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值