vim的简单使用

Content

  • 三种模式
  • 光标移动
  • 查找与替换
  • 删除、复制和粘贴
  • 命令行
  • 块选择
  • 多文件编辑
  • 多窗口显示
  • 中文编码问题
  • 语系转换和

三种模式

vim可以分为一般模式、编辑模式和命令行模式,各种模式的转换如下:

一般模式 ---> 编辑模式

i    当前表示符前
o 当前提示符下一行
a 当前提示符下一个
r 向后擦出

一般模式 ---> 命令行模式 :执行命令,/向下搜索,?向上搜索

编辑模式 ---> 一般模式 使用ESC键退出

移动光标

h,j,k,l    分别是左移,下移,上移,下移
0或者Home 移动到本行最前
$或者End 移动到本行最后
1G或gg 移动到第一行
nG 移动到第n行
G 移动到最后一行
n+space 向后移动n个字符
n+Enter 向下移动n行

查找和替换

/word    向下查找word
?word 向上查找word
n 移动到下一个目标
N 移动到上一个目标
:n1,n2s/word1/word2/g 从第n2到n2行将word1替换为word2
:1,$s/word1/word2/g 从第一行到最后将word1替换为word2
:1,$s/word1/word2/gc 从第一行到最后将word1替换为word2

复制和粘贴

X    向前删除
x 向后删除
dd 删除光标所在行
ndd 删除光标向下n行
d0 删除光标处到最前
d$ 删除光标出到最后
d1G 删除光标出到第一行
dG 删除光标处到最后一行 yy 复制光标所在行
nyy 复制光标下n行
y0 复制从光标出到本行最前
y$ 复制从光标处到本行最后
y1G 复制从光标处到第一行
yG 复制从光标处到最后 P 复制到光标上一行
p 复制到光标下一行 u 复原上一个操作
Ctrl+r 重复上一个操作

命令行

:q[!]    退出,加感叹号强制退出
:w[!] 保存,加感叹号强制保存
:wq[!] 保存退出,加感叹号强制
ZZ 若有改动保存退出,若无改动直接退出
:w[filename] 另存为filename
:r[filename] 将filename内容引入光标后边
:n1,n2 w filename 将n1到n2内容保存到filename中
:!command 暂时离开vi执行命令command

块选择

v    字符选择
V 行选择
Ctrl+v 块选择,长方形选择数据
y 复制选中块
d 删除选中块

多文件编辑

vim filename1 filename2
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前vim打开的所有文件

多窗口显示

:sp filename    将另一个文件打开在另一个窗口
:sp 将本文件再次打开在另一个窗口
Ctrl+w+k/上 上一个窗口
Ctrl+w+j/下 下一个窗口
Ctrl+w+q 关闭当前窗口

中文编码问题

DOS与linux段行字符

在dos中CR与LF都是段行,在linux中只有LF

dos2unix [-kn] file newfile
unix2dos [-kn] file newfile
-k 保留源文件的日期
-n 保留源文件

语系转换和查看文件编码

    iconv --list:输出iconv支持的编码
  iconv -f 原本编码 -t 新编码 [-o newfile]
file -bi filename
  :set fileending

简单配置

set smarttab
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set nu

Referrences

[1] 摘自《鸟哥的私房菜》第三篇,人民邮电出版社

vim的使用与配置的更多相关文章

  1. 为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 alias vi='vim'此时,经过上面配置已经可以显示语法高亮了

    为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 aliasvi='vim'此时,经过上面配置已经可以显示语法高亮了

  2. ubuntu16.04下vim的安装与配置

    一.安装vim 使用命令 $ sudo apt-get install vim  来安装vim,安装后的vim需要进行一些配置,不然使用起来会有些不方便,比如不会自动缩进. 二.配置vim 使用命令  ...

  3. Vim 插键及配置

    如果你觉得这个页面广告太多,欢迎移步博客阅读:Vim 插键及配置 编辑器之神 -- Vim 平日使用vim经常编辑文件,想想使用时的痛点,决定研究一下插件的使用. Vim的扩展通常也被成为bundle ...

  4. 在vim中安装及配置NERDTree插件

    使用Vundle插件安装,在.vimrc中加入以下代码: Plugin 'scrooloose/nerdtree' 打开vim,输入命令如下: :BundleInstall 等待安装完毕 配置NERD ...

  5. Vim:gvim安装配置(windows)

    Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...

  6. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  7. LINUX操作系统VIM的安装和配置

    VIM的安装   在命令行敲入"vi"后按"tab"键,可以看到目前系统中只安装了vi和vim.tiny. vim是从VI发展而来的一个文本编辑器,功能更强大. ...

  8. vim 标准环境的配置

    最近刚刚从IDE转到了vim,很多习惯不一致,特地配置了一下vim环境.在网上找了大神的帖子,怕忘记了,特此纪念. 传送门     http://www.cnblogs.com/ma6174/arch ...

  9. Ubuntu下VIM的安装及其配置——Linux篇

    一.Ubuntu系统默认内置: 实际上ubuntu默认没有安装老版本的vi,只装了vim.vi是vim.tiny(vim的最小化版本,不含 GUI,并且仅含有一小部分功能,并且默认与vi兼容.此软件包 ...

随机推荐

  1. 抱歉!15:44-16:39阿里云RDS故障造成全站不能正常访问

    非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解! 故障是在15:44开始出现的,应用日志中出现大 ...

  2. [板子]ISAP

    ISAP求最大流,敲了一发板子,无压行,教程略去.转载请随意. #include <cstdio> #include <cstring> #include <algori ...

  3. Redis系列之(二):Redis主从同步,读写分离

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  4. 修改hosts文件在本地使域名解析到指定IP

    # Additionally, comments (such as these) may be inserted on individual  # lines or following the mac ...

  5. Web App 压力测试

    建议您可以在本地压测来进行评估 具体的压测方法请参考下面的链接:https://www.visualstudio.com/zh-cn/docs/test/performance-testing/run ...

  6. VR、AR、MR的区别

    VR.AR.MR定义: 什么是虚拟现实? 虚拟现实(Virtual Reality,简称VR,又译作灵境.幻真)是近年来出现的高新技术,也称灵境技术或人工环境.虚拟现实是利用电脑模拟产生一个三维空间的 ...

  7. Android ooVoo Apk附件关联分析

    为什么要分析附件关联 发送和接收的图片以及头像等从网上下载的存储在手机的sdcard上面以转换后的名字命名,需要分析数据库中的记录所对应的sdcard的文件才能关联.比如数据库存储是http://oo ...

  8. js 对象的_proto_

    js 对象呢,有个属性叫_proto_,以前没听说过,也没关注,最近看这个原型,就被迫知道了这个东西,js 这里面的东西,真是规定的很奇怪,具体为啥也不知道,就测试发现的,对象的_proto_属性,和 ...

  9. Html中列表标签<ul>的使用

    借助Html中的列标标签<ul>在某列文字前面添加标注 <html> <head> <title>文字上方添加标记说明</title> &l ...

  10. .vue文件里引用单独样式和js文件

    style只能引一个,script可以引多个