《Unix Linux 大学教程》 - 第二十二章(三) 学习笔记

2024-02-09 14:38

本文主要是介绍《Unix Linux 大学教程》 - 第二十二章(三) 学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习笔记,内容基础,适合初学者。


阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分)

《Unix & Linux 大学教程》 - 第一、二章 学习笔记   Unix简介 & 什么是Linux?什么是Unix
《Unix & Linux 大学教程》 - 第三、四章 学习笔记   Unix连接 & 开始使用Unix
《Unix & Linux 大学教程》 - 第五、六章 学习笔记   GUI:图形用户界面 & Unix工作环境
《Unix & Linux 大学教程》 - 第七、八章 学习笔记   Unix键盘使用 & 能够立即使用的程序
《Unix & Linux 大学教程》 - 第九、十章 学习笔记   文档资料:Unix手册与Info & 命令语法
《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记   shell & 使用shell:变量和选项
《Unix & Linux 大学教程》 - 第十三章 学习笔记   使用shell:命令和定制
《Unix & Linux 大学教程》 - 第十四、十五章 学习笔记   使用shell:初始化文件
《Unix & Linux 大学教程》 - 第十六、十七章 学习笔记   过滤器:简介和基本操作
《Unix & Linux 大学教程》 - 第十八章 学习笔记   过滤器:统计和格式化
《Unix & Linux 大学教程》 - 第十九章(一) 学习笔记   过滤器:选取、排序、组合及变换
《Unix & Linux 大学教程》 - 第十九章(二)、第二十章 学习笔记 过滤器:选取、排序、组合及变换 正则表达式
《Unix & Linux 大学教程》 - 第二十一章 学习笔记 显示文件
《Unix & Linux 大学教程》 - 第二十二章(一) 学习笔记 vi文本编辑器(一)
《Unix & Linux 大学教程》 - 第二十二章(二) 学习笔记 vi文本编辑器(二)
《Unix & Linux 大学教程》 - 第二十二章(三) 学习笔记 vi文本编辑器(三)
《Unix & Linux 大学教程》 - 第二十三章 学习笔记 Unix文件系统
《Unix & Linux 大学教程》 - 第二十四章 学习笔记 目录操作
《Unix & Linux 大学教程》 - 第二十五章 学习笔记 文件操作
《Unix & Linux 大学教程》 - 第二十六章(一) 学习笔记 进程和作业控制
《Unix & Linux 大学教程》 - 第二十六章(二) 学习笔记 进程和作业控制




第二十二章:vi文本编辑器(三)

设置选项

两种选项类型:开关与变量

开关语法:

:set [no]option...

开关缩写默认值含义
autoindentaioff和shift width相关,缩进以匹配上一行/下一行
autowriteawoff如果文本已经修改,则在切换文件前保存
errorbellseboff当显示错误消息时发出滴滴声
exrcexoff在当前目录中查找初始化文件
ignorecaseicoff在搜索过程中忽略大小写
list--off将制表符显示为^I,将行的结束显示为$
numbernuoff显示行号
readonlyrooff不允许修改编辑缓冲区的内容
showmatchsmoff输入模式:显示匹配的()、{}或[]
showmodesmdoff当进入输入模式时显示一个提醒
wrapscanwsoff在搜索过程中,环绕到文本的开头/末尾继续搜索
writeanywaoff允许不需要重载! 就可以写入任何文件


变量语法:

:set option[=value]...

变量缩写默认值含义
lines--24文本的行数(窗口/屏幕大小-1)
shiftwidthsw8autoindent 使用的空格数量
tabstopts8制表符间距
wrapmarginwm0设置自动换行时的页边距(0=off)



显示选项

语法:

:set [option[?]... | all]

:set all:显示所有选项的值

:set number? showmode?:显示多个选项的值

:set:显示改变了默认值的选项




键入过程中自动换行

语法:

:set wrapmargin=n(n为距离右边距的字符数)

wrapmargin=0(不自动换行)

(不知道这个怎么用,我这里似乎没有什么效果。。。)


:set autoindent(设置自动缩进)

(这个实验是有效果的,换行之后,新行与上行与左边距的距离相同)




分隔与连接行

语法:

r<Return>:在光标处换行(在修改文本中讲过r了)

J:连接行,在所在行执行J,结果将下一行接到本行末尾(自动插入空格,单词间一个,句子间两个)

3J:我机器上的结果为将3行合并为一行,而不是执行3次J(3次J则是将4行合并为一行)




复制与移动行

语法:

:x[,y]coz:x,y,z为行号。将第x(至第y)行复制到第z行的下面

:x[,y]mz:x,y,z为行号。将第x(至第y)行移动到第z行的下面




输入shell命令

语法:

:!command:暂停vi,执行shell命令

:!!:暂停vi,执行前一条命令

:sh:暂停vi,启动一个新shell(默认shell)

:!bash:暂停vi,启动一个新Bash shell

:!tcsh:暂停vi,启动一个新Tcsh shell




将文件中的数据插入到编辑缓冲区中

语法:

:[line]r file:在第line行之后插入file

:$r text(在末尾插入文件text)




将shell命令的输出插入到编辑缓冲区中

语法:

:[line]r !command:在第line行之后插入执行command命令后输出的内容

:r !ls -l(在当前行下面插入ls -l后的输出)




使用程序处理数据

!和!!命令将把编辑缓冲区中的行发送给另一个程序,该程序的输出将替换原始行

语法:

n!!program:在n个行上执行程序program

!move progarm:从当前行至move行执行程序program

5!!sort(从当前行开始,到连续5行的文本执行sort命令)

!Gsort(从当前行开始,文本末尾执行sort命令)




将数据写入文件

语法:

:w:将数据写入原始文件

:w file:将数据写入到一个新的文件(如果这个文件不存在,则会提示警告,如果确实要覆盖,使用下面的命令)

:w! file:覆盖一个已有的文件

:w>>file:将数据追加到指定的文件




切换到一个新文件

语法:

:e file:切换到新的文件(如果当前文件有未保存内容,则需要保存,如果不想保存,则需使用下面的命令)

:e! file:切换到新的文件,忽略对当前文件的修改

:e!:忽略当前的修改,重新编辑此文件





使用缩写

语法:

:ab [short long]:缩写(abbreviate),在输入模式中使用(只有缩写成为单独单词时才会自动补全)

:una short:反缩写(un-abbreviate),删除一个缩写

:ab:查看缩写列表




在命令模式下使用的单字符缩写

Vi:可以用作宏名称的字符
字母g  K  q  v  V  Z
标点符号@  #  *  \
Ctrl字符^A  ^K  ^O  ^W  ^X


Vim:可以用作宏名称的字符
字母K  q  v  V
标点符号@  \
Ctrl字符^@  ^A  ^K  ^O  ^W  ^X

语法:

:map [x commands]

x为一个字符

commands是vi或ex命令序列


:map g 1G:输入g,则跳转到第一行

:map K deep:输入K,则调换两个单词

:map * I/* ^V^[A */^V^[:把当前行变为/*……*/形式的注释(在当前行前后分别加入/*和*/

(^V^[,输入一个<ESC>码)


某些版本允许将宏赋给F1-F10

语法:

:map #number commands

:map #3 :set all:将F3设置为查看所有选项


移除宏

:unmap x




初始化文件

vi:.exrc

vim:.vimrc

一些版本的vi(或vim)不允许初始化文件中有空行,并且可能会提示一个不明确的错误消息,比如:Error detected in .exrc

如果home中有初始化文件,则加载,并执行其中命令



使用两个初始化文件

检查exrc选项,如果是打开的,则在当前目录下查找第二个初始化文件来执行




相关文档/帮助

vimtutor

:help

:help-user-manual

:help-differences






转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

这篇关于《Unix Linux 大学教程》 - 第二十二章(三) 学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694487

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文