编辑器 VIM

插入命令,执行后会进入插入状态:

  i     在光标处插入
  a    在光标后插入
  o    在新的下一行插入
  O   在当前行前插入一个新行
  cw 替换从光标所在位置后到一个单词结尾的字符,
       之后进入插入

撤销与恢复:

  u:            Revocation
  <C+r>    恢复撤销

分屏操作:

  :vsplit xxx    要打开的文件名
  :vnew           在新窗口创建文件
  :only             取消分屏
  <C+w> h     跳转到左边的窗口 (若为大写H,则是把当前窗口调至左方)
  <C+w> l      跳转到右边的窗口 (类似于上)
  <C+w> w    在窗口之间跳转
  <C+w> +     扩大窗口 (或在当前窗口位置,输入命令 :res +9)
  <C+w> -      缩小窗口 (同理 :res -num)

光标移动:

  gg    光标移动到文件头
  G     将光表移动到文件尾
  0     数字零,到行头
  ^     到本行第一个不是blank字符的位置
        (所谓blank字符就是空格,tab,换行,回车等)
  $     到本行行尾
  g_    到本行最后一个不是blank字符的位置。
  w/W   跳转到下一个单词首部
  e/E   跳转到下一个单词尾部
  b/B   跳转到上一个单词首部

使用鼠标:

  :set mouse=
  n       普通模式
  v       可视模式
  i       插入模式
  c       命令行模式
  h       在帮助文件里,以上所有的模式
  a       以上所有的模式
  r       跳过 |hit-enter| 提示
  用鼠标和可视模式复制/粘贴 ('mouse' 选项必须设置,见上):
  1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左
     键。这会启动可视模式并高亮选择区域。
  2. 按 "y" 抽出可视文本到无名寄存器里。
  3. 在要插入的位置上按鼠标左键。
  4. 按鼠标中键。

  A       在可视模式下自动选择 

( 一般我直接用:set mouse=a)

查找与替换:

  /text          text为查找对象 向前查找
  ?text          向后查找
  n              查找下一个
  N              查找上一个
  :set ic        查找时忽略大小写
  :set noic      查找时对大小写敏感

  :%s/yyy/xxx/g  将文件中的yyy替换为xxx

  /\<aaa\>     精确查找单词aaa

  r<Input>       用Input替代当前光标所在位置的字符
  gu             替换成小写

  gU             替换成大写

  :set hls                设置高亮搜索

缩进:

  :set cindent         按C/C++方式缩进
  :set shiftwidth=n    n是缩进宽度
  gg=G                 重新缩进整个文件
  N==                  从当前行开始缩进, N为缩进行数。
  例如:set cindent shiftwidth=4  以C/C++方式缩进4个单位

复制粘贴:

  yy            将当前行的内容放入临时缓冲区
  nyy           将 n 行的内容放入临时缓冲区
  p             将临时缓冲区中的文本放入光标后
  P             将临时缓冲区中的文本放入光标前
  dd            将当前行剪切到缓冲区
  dw            将光标所在词剪切到缓冲区
  J             删除本行的回车符,把下一行并入本行末尾
  "+y           把选定的内容放到寄存器"+中,这对应的是系统剪切版 
  "+p           把起存器"+中的内容paste到当前的VIM中

其他:

  :set ts=4
  :set expandtab
  :set ts=4 expandtab     将tab用4个空格替换
  :set nu                 左侧显示文本的行号
  :set list               显示换行符和tab键
  <C-p>或是<C-n>          自动补全
  .                       (小数点) 可以重复上一次的命令
  N<command>              重复某个命令N次
  :e                      打开其他文件
  :e!                     放弃当前修改,强制重新载入
  :set noexpandtab        取消用空格替换tab
  对于("foo")操作时:
  vi"                     会选择 foo
  va"                     会选择 "foo"
  vi)                     会选择 "foo"
  va)                     会选择("foo")
  qa                      用a寄存器记录操作,按q停止记录,
                          @@重复最新记录,@a重复a寄存器操作
  ga                      显示光标下字符的 ascii 值,
                          分别以十进制、十六进制和八进制显示
  <C-v> + 字符            输入特殊字符
  <C-a>                   将当前数字加1
  :let i=0                设置变量i值为0
  例如:s/0/\=i 将光标所在行中第一个0用i变量的值来替换

  :syntax on     语法高亮

  :set nobackup  不生成~的备份文件

  :%!xxd            显示16进制编码,加 -r 编辑结束后还原文件格式

(*)多数set  "name" ,  都可以 set no"name"取消

  shift+d            删除光标到本行结束的内容
  d+ (shift+$)   删除光标到结束的内容
  d+ (shift+^)   删除光标到行开始的内容

  n, m !sort      将n到m行排序(e.g. 10,15 !sort)

  m + a-z      mark 位置

  ' +a-z        光标移动到对应的标记

  marks         显示所有标记

  delmarks   删除所有标记

vimdiff:

[c , ]c 跳到下一个或上一个差异位置

VsVim:

关闭控件 Ctrl + Shift + F12

修改热键:工具--> 选项 --> VsVim

Windows下:

如果不想要windows下的ctrl-v粘贴这样的设置,可以将_vimrc中的这一行注释掉:

source $VIMRUNTIME/mswin.vim

我的简单配置: 

(vim配置文件位置: 

ubuntu /etc/vim/vimrc,

win 安装目录/_vimrc,

mac /usr/share/vim/vimrc )

syntax on  
set nu  
set mouse=a  
set ic  
set cindent  
set shiftwidth=2  
  
let filename=expand('%:t') "set variable  
if filename != 'makefile'   
  set ts=2 expandtab  
endif  
set nobackup  
  
noremap <CR>  o^[
"Enter replace cmd(o) + Esc (^[ represent Esc)
imap { {}^[OD
imap ( ()^[OD
imap [ []^[OD
imap <C-P> <Esc>

MacOS 下加上这两句,用来复制选中文字进入系统剪切板

vmap "+y :w !pbcopy<CR><CR> 
nmap "+p :r !pbpaste<CR><CR>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值