别人的Linux私房菜(10)vim程序编辑器
很多软件的编辑接口会主动调用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程序编辑器的更多相关文章
- linux学习笔记:vim程序编辑器—vim的使用
注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...
- 别人的Linux私房菜(20)启动流程、模块管理与Loader
系统启动时,首先加载BIOS,通过BOIS读取COMS的硬件信息,进行自我检测,取得第一个可启动的设备(多个根据设置有关). 读取并执行设备内的MBR启动引导程序,引导程序调用boot sector中 ...
- 别人的Linux私房菜(17)进程管理与SELinux初探
程序在磁盘中,通过用户的执行触发.触发事件时,加载到内存,系统将它定义成进程,给予进程PID,根据触发的用户和属性,给予PID合适的权限. PID和登陆者的UID/GID有关.父进程衍生出来的进程为子 ...
- 别人的Linux私房菜(22)软件安装:源代码与Tarball
执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...
- 别人的Linux私房菜(18)认识系统服务(daemon)
完成服务service的程序称为daemon.完成计划性的服务程序如crond是一个daemon. 早期的System V的init管理daemon操作中,系统内核首先调用init,然后init运行系 ...
- 别人的Linux私房菜(15)磁盘配额与高级文件系统管理
磁盘配额在网站.邮件.文件等服务器常见,主要有针对用户.用户组.限制某一目录的的最大磁盘配额. ext文件系统进能针对整个文件系统配额,xfs可以针对目录配额.配额和文件系统有关. 内核必须支持磁盘配 ...
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- 别人的Linux私房菜(13)学习Shell脚本
CentOS6.x以前版本的系统服务启动接口在/etc/init.d/目录下,存放了脚本. Shell脚本因调用外部命令和bash 的一些默认工具,速度较慢,不适合处理大量运算. 执行方式有:直接命令 ...
- 别人的Linux私房菜(9)文件与文件系统的压缩
www网站利用文件压缩技术进行数据传输,提升网络带宽. 压缩命令gzip与显示zcat.zmore.zless.zgrep -c将压缩的数据显示到屏幕上 -d解压缩 -v显示原文件/压缩文件的压缩比等 ...
随机推荐
- 学习笔记之Problem Solving with Algorithms and Data Structures using Python
Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms a ...
- Scrapy实战篇(四)爬取京东商城文胸信息
创建scrapy项目 scrapy startproject jingdong 填充 item.py文件 在这里定义想要存储的字段信息 import scrapy class JingdongItem ...
- Linux安装rz/sz,htop插件
Linux下rz/sz安装及使用方法 sz: 将选定的文件发送(send)到本地机器; rz:运行该命令会弹出 一个文件选择窗口, 从本地选择文件上传到服务器(receive). 下载安装包 lrzs ...
- 学习 MeteoInfo二次开发教程(三)
1.breakList的问题 ((PolygonBreak) aLS.breakList[0]).DrawFill=false; 新的类库将LegendScheme的breakList属性改为了Leg ...
- delphi 字符串string转流TStream
function StringToFile(mString : string; mFileName : TFileName) : Boolean;var vFileChar : file of Cha ...
- centos7在vmware上安装后不能连接网络的问题。注意虚拟机向导时选择的操作系统...........
在虚拟机上安装时发现网络不可用 在网上查找解决方案一整理天,各种命令代码偿试 无效. 在贴上发现说 Centos7镜像是64位 ,虚拟机操作系统一定要选择centos64位也是必须的. 最后选择重 ...
- c#操作excel方式三:使用Microsoft.Office.Interop.Excel.dll读取Excel文件
1.引用Microsoft.Office.Interop.Excel.dll 2.引用命名空间.使用别名 using System.Reflection; using Excel = Microsof ...
- virtual 函数只有在用指针或引用的方式访问,才会导致多态。
只有用指针和引用,才会动态绑定.才会在运行时候从虚表中找对应的成员函数. 如果只是用.访问成员函数,是静态绑定,在编译时刻就固定好的. 另外,父类的虚函数,子类不管加不加virtual关键字,都是虚函 ...
- 接入层高性能缓存技术nginx+redis利器OpenResty
一. OpenRestyOpenResty是一个基于 Nginx与 Lua的高性能 Web平台,其内部集成了大量精良的 Lua库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极 ...
- 合并数组,改变原数组apply与不改变原数组
一看见合并数组,可能第一反应就是concat,concat确实具有我们想要的行为,但它实际上并不附加到现有数组,而是创建并返回一个新数组. 同样你也许会想到ES6的扩展运算符... 但 ...