很多软件的编辑接口会主动调用vi

vi分一般命令模式、编辑模式、命令行模式。

使用vi :/bin/vi welcome.txt

下下端显示文本有多少行,多少字符,

一般命令模式:

上下左右移动光标kjhl

0或home移动到本行最前    $或end移动到本行最后    G移动到最后一行  nG移动到第n行    gg相当1G  数字+空格后移n字符 数字+回车 下移n行

ctrl + f/b/d/u  下移一页,上移一页,下移半页,上移半页  +-光标移动非空格下一行/上一行

/  ?   n   N  查找与继续查找

:n1,n2s/word1/word2/g在n1和n2行之间将word1替换为word2   /gc为是否替换确认   $为最后一行

nx向后删除n个字符

ndd剪切光标所在的向下n行  默认dd为n=1  d1G   dG  d$   d0等

nyy复制光标所在的向下n行  默认yy为n=1  y1G  yG  y%(所在字符到行尾)   y0(所在字符到行首)

p粘贴在光标后,P粘贴在光标前。

u恢复前一个操作(撤销)   ctrl+r重做上一个操作(前进)    . 重复前一个操作

编辑模式:

i  光标所在处插入I第一个非空格处插入

a下一个字符处插入 A所在行最后一个字符处插入

o下一行插入新行   O上一行插入新行

r替换光标字符一次,R一直替换 

左下角提示,esc退出。

命令行模式:

:进入
w  wq   w!   q!

w filename 另存新文件    r filename 读入另外文件到本文件

n1,n2, w  filename另存指定行

! command 暂退执行命令

set nu  set nonu设置与取消行号。

vim的缓存保存在对应目录下的.filename.swp文件中

alias查看一些命令关联

vi的可视区块编辑

v字符选择  V行选择   ctrl +v 可视区块  y复制  d删除   p  粘贴

多文件编辑:

:n下个文件 :N上个文件 切换文件   :files列出所有

多窗口功能:

:sp {filename}

ctrl + w + 上  、下  切换窗口      q结束退出

代码补齐:

ctrl +xn     ctrl +xf    ctrl +xo(以扩展名为语法扩充,补齐)等

vim环境的操作记录位置: ~/.viminfo

vim目前设置值:在vim中输入:set all

http://cn.linux.vbird.org/linux_basic/0310vi_3.php

DOS与Linux的换行符文件转换:

dos2unix

unix2dos

-k保留原始的文件格式

-n保留旧文件

如:dos2unix  -n  old  new等

语系编码转换:

iconv  --list  列出支持语系

-f来源  -t 到达  -o输出新文件

如繁体转换为简体:iconv  -f  utf-8 t big5 oldfile | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o newfile

别人的Linux私房菜(10)vim程序编辑器的更多相关文章

  1. linux学习笔记:vim程序编辑器—vim的使用

    注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...

  2. 别人的Linux私房菜(20)启动流程、模块管理与Loader

    系统启动时,首先加载BIOS,通过BOIS读取COMS的硬件信息,进行自我检测,取得第一个可启动的设备(多个根据设置有关). 读取并执行设备内的MBR启动引导程序,引导程序调用boot sector中 ...

  3. 别人的Linux私房菜(17)进程管理与SELinux初探

    程序在磁盘中,通过用户的执行触发.触发事件时,加载到内存,系统将它定义成进程,给予进程PID,根据触发的用户和属性,给予PID合适的权限. PID和登陆者的UID/GID有关.父进程衍生出来的进程为子 ...

  4. 别人的Linux私房菜(22)软件安装:源代码与Tarball

    执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...

  5. 别人的Linux私房菜(18)认识系统服务(daemon)

    完成服务service的程序称为daemon.完成计划性的服务程序如crond是一个daemon. 早期的System V的init管理daemon操作中,系统内核首先调用init,然后init运行系 ...

  6. 别人的Linux私房菜(15)磁盘配额与高级文件系统管理

    磁盘配额在网站.邮件.文件等服务器常见,主要有针对用户.用户组.限制某一目录的的最大磁盘配额. ext文件系统进能针对整个文件系统配额,xfs可以针对目录配额.配额和文件系统有关. 内核必须支持磁盘配 ...

  7. 别人的Linux私房菜(14)Linux账号管理和ACL权限设置

    用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...

  8. 别人的Linux私房菜(13)学习Shell脚本

    CentOS6.x以前版本的系统服务启动接口在/etc/init.d/目录下,存放了脚本. Shell脚本因调用外部命令和bash 的一些默认工具,速度较慢,不适合处理大量运算. 执行方式有:直接命令 ...

  9. 别人的Linux私房菜(9)文件与文件系统的压缩

    www网站利用文件压缩技术进行数据传输,提升网络带宽. 压缩命令gzip与显示zcat.zmore.zless.zgrep -c将压缩的数据显示到屏幕上 -d解压缩 -v显示原文件/压缩文件的压缩比等 ...

随机推荐

  1. iframe-父子-兄弟页面相互传值(jq和js两种方法)

    参考文章: http://blog.csdn.net/u013299635/article/details/78773207 http://www.cnblogs.com/xyicheng/archi ...

  2. spring cloud gateway - RequestRateLimiter

    1. Official website 5.7 RequestRateLimiter GatewayFilter Factory The RequestRateLimiter GatewayFilte ...

  3. python导包路径的修改

    1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...

  4. c#操作excel方式三:使用Microsoft.Office.Interop.Excel.dll读取Excel文件

    1.引用Microsoft.Office.Interop.Excel.dll 2.引用命名空间.使用别名 using System.Reflection; using Excel = Microsof ...

  5. 收藏 —— KVM网络虚拟化

    http://www.cnblogs.com/CloudMan6/p/5240770.html http://www.cnblogs.com/CloudMan6/p/5289590.html

  6. Python模块定义和使用

    Python中所谓的模块就是一个Python文件,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块.模块由代码.函数或类组成.编程中使用模块不仅可以提 ...

  7. MYSQL性能优化(3)

    优化数据库对象 1.优化表的数据类型 select * from tbl1 procedure analyse(16,256) ,会输出优化建议,结合情况优化 2.拆分表(仅Myisam) 2.1 纵 ...

  8. Android Spinner 设置setOnItemSelectedListener时,竟会默认触发一次事件!

    当然是关闭这坑货了: //禁止OnItemSelectedListener默认自动调用一次 spinnerDutyPerson.setSelection(0, true); //放到TagContai ...

  9. SQL Server中多表连接时驱动顺序对性能的影响

    本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  10. 为什么要使用mybaits

    通常在项目开发过程中,有很多代码是重复的,固定不变的.为了提升开发效率,可将这些 固定不变的代码提取出来,生成class文件,将class文件打jar包,基于框架开发. mybaits是一个ORM框架 ...