文本编辑器

news2024/11/29 1:35:37

章节目录:

    • 一、Vim 编辑器
      • 1.1 检查 vim 软件包
      • 1.2 vim 基础
      • 1.3 命令模式
      • 1.4 输入模式
      • 1.5 底线命令模式( Ex 模式 )
    • 二、nano 编辑器
    • 三、结束语

一、Vim 编辑器

vi 编辑器是 Unix 系统中最早的编辑器之一。vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

1.1 检查 vim 软件包

开始学习 vim 编辑器之前,最好先弄清楚你的 Linux 系统用的是哪种 vim 软件包。

  • 应用示例
# 1.查找并显示vim命令的绝对路径。
[root@VM-8-11-centos ~]# which vim
/usr/bin/vim

# 2.查看包。
[root@VM-8-11-centos ~]# ls -l /usr/bin/vim
-rwxr-xr-x 1 root root 2337208 Dec 16  2020 /usr/bin/vim
  • 注意事项vim 程序文件长列表中并没有显示任何链接文件。如果 vim 程序被设置了链接,那么有可能被链接到一个功能较弱的编辑器。所以最好还是检查一下。

1.2 vim 基础

vim 编辑器在内存缓冲区中处理数据。只要输入 vim 命令和要编辑的文件名就可以启动 vim 编辑器。

  • 如果在启动 vim未指定文件名或者指定文件不存在,则 vim 会开辟一段新的缓冲区进行编辑。

  • 如果指定的是已有文件的名称,则 vim 会将该文件的整个内容都读入缓冲区以备编辑。

  • vim 编辑器会检测会话的终端类型,使用全屏模式来将整个控制台窗口作为编辑区域。

  • 如果文件是新建的,那么编辑界面底部会出现消息 [New File]

  • vim 编辑器有 3 种操作模式:

    • 命令模式
    • 输入模式
    • 底线命令模式( Ex 模式 )
  • 三种模式-切换示意图

在这里插入图片描述

  • vim 键盘图

1.3 命令模式

打开要编辑的文件( 或新建文件 )时, vim 编辑器会进入命令模式( 有时也称为普通模式 ),该模式下, vim 编辑器会将按键解释成命令

  • 进入 vim 命令模式
# 1.此处编辑不存在的文件作为示例。
[root@VM-8-11-centos tmp]# vim 000.txt
  • 命令模式界面

在这里插入图片描述

  • 模式切换
作用按键
切换到输入模式,以输入字符。i
切换到底线命令模式,以在最底一行输入命令。:
  • 光标移动
作用按键
光标向左移动一个字符。h 或 向左箭头键(←)
光标向下移动一个字符。j 或 向下箭头键(↓)
光标向上移动一个字符。k 或 向上箭头键(↑)
光标向右移动一个字符。l 或 向右箭头键(→)
屏幕向下移动一页,相当于 [ Page Down ]按键。( 常用 )[Ctrl] + [f]
屏幕向上移动一页,相当于 [ Page Up ] 按键。( 常用 )[Ctrl] + [b]
屏幕向下移动半页。[Ctrl] + [d]
屏幕向上移动半页。[Ctrl] + [u]
光标移动到非空格符的下一行。+
光标移动到非空格符的上一行。-
那个 n 表示『 数字 』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。n<space>
这是数字『 0 』:移动到这一行的最前面字符处。( 常用 )0 或功能键[Home]
移动到这一行的最后面字符处。( 常用 )$ 或功能键[End]
光标移动到这个屏幕的最上方那一行的第一个字符。H
光标移动到这个屏幕的中央那一行的第一个字符。M
光标移动到这个屏幕的最下方那一行的第一个字符。L
移动到这个档案的最后一行。( 常用 )G
『 n 』为数字表示移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行。( 可配合 :set nu )nG
移动到文档的第一行。( 常用 )gg
『 n 』为数字。光标向下移动 n 行。( 常用 )n<Enter>
  • 搜索替换
作用按键
向光标之下寻找一个名称为 word 的字符串。( 常用 )/word
向光标之上寻找一个字符串名称为 word 的字符串。?word
这个『 n 』是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!n
这个『 N 』是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。N
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。( 常用 ):n1,n2s/word1/word2/g
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !( 常用 ):1,$s/word1/word2/g 或 :%s/word1/word2/g
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!( 常用 ):1,$s/word1/word2/gc 或 :%s/word1/word2/gc
  • 删除、复制粘贴
作用按键
在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)( 常用 )x, X
『 n 』为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『 10x 』。nx
剪切游标所在的那一整行( 常用 ),用 p / P 可以粘贴。dd
『 n 』为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行( 常用 ),用 p/P 可以粘贴。ndd
删除光标所在到第一行的所有数据。d1G
删除光标所在到最后一行的所有数据。dG
删除游标所在处,到该行的最后一个字符。d$
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符。d0
复制游标所在的那一行。( 常用 )yy
『 n 』为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行。( 常用 )nyy
复制游标所在行到第一行的所有数据。y1G
复制游标所在行到最后一行的所有数据。yG
复制光标所在的那个字符到该行行首的所有数据。y0
复制光标所在的那个字符到该行行尾的所有数据。y$
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。( 常用 )p, P
将光标所在行与下一行的数据结合成同一行。J
重复删除多个数据,例如向下删除 10 行,[ 10cj ]c
复原前一个动作。( 常用 )u
重做上一个动作。( 常用 )[Ctrl]+r
小数点『.』,意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点就好了。( 常用 ).

1.4 输入模式

按下 i 键就进入输入模式,该模式下 vim 会将你在当前光标位置输入的字符、数字或者符号都放入缓冲区。要退出输入模式并进返回命令模式,按下 Esc 键即可。

  • 输入模式界面

在这里插入图片描述

  • 在输入模式中,可以使用以下按键
作用按键
输入字符。字符按键以及 Shift 组合
换行。ENTER( 回车键 )
删除光标前一个字符。BACK SPACE ( 退格键 )
删除光标后一个字符。DEL ( 删除键 )
在文本中移动光标。方向键
移动光标到行首/行尾。HOME / END
上 / 下翻页。Page Up / Page Down
切换光标为输入 / 替换模式,光标将变成竖线 / 下划线。Insert
退出输入模式,切换到命令模式。ESC

1.5 底线命令模式( Ex 模式 )

命令模式下按下 : 键(英文冒号)就进入了底线命令模式。

  • 底线命令模式界面

在这里插入图片描述

  • 存储、离开等指令
作用按键
将编辑的数据写入硬盘档案中。( 常用 ):w
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关。:w!
离开 vi 。( 常用 ):q
若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。:q!
储存后离开,若为 :wq! 则为强制储存后离开。( 常用 ):wq
这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)ZZ
不保存,强制退出。效果等同于 :q!ZQ
将编辑的数据储存成另一个档案。(类似另存新档):w [filename]
在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面:r [filename]
将 n1 到 n2 的内容储存成 filename 这个档案。:n1,n2 w [filename]
暂时离开 vi 到指令行模式下执行 command 的显示结果!例如:『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!:! command
  • vim 环境的变更
作用按键
显示行号,设定之后,会在每一行的前缀显示该行的行号:set nu
与 set nu 相反,为取消行号!:set nonu

二、nano 编辑器

vim 是一款复杂的编辑器,功能强大,相比之下nano 就简单多了。如果只是需要一款简单易用的控制台模式文本编辑器,不妨考虑 nano

  • 进入 nanonano file_name

  • 编辑界面

  • 帮助文档( CTRL + G )

在这里插入图片描述

  • 快捷键表示方式及说明
    • 控制键序列使用一个 ^ 符号标记,它表示可以用 Ctrl 键按 Esc 键两次的方式进行输入。
    • Meta 键序列使用 M- 符号标记(并不是用 M 键),它表示可以用 Alt、Cmd Esc 键输入,具体取决于你的键盘设置。
    • 上述按键组合可用于主要编辑区,替代按键则显示于括号内。
  • 常用操作
作用按键
查看帮助信息CTRL + G
离开(可以选择是否保存修改)CTRL + X
保存修改(可以自定义文件名,相当于另存为)CTRL + O
读档(将另一个文件整个插入进来)CTRL + R
替换(先输入被替换字符串,再输入替换字符串)CTRL + \
搜索CTRL + W
剪切(将一行内容剪切下来,可以粘贴到其他位置)CTRL + K
复制 / 反剪切(将剪切下来的内容粘贴出来)CTRL + U
显示行号CTRL + C
跳行CTRL + _
上页CTRL + Y
下页CTRL + V
首行ALT + \
末行ALT + /
  • 还有一些功能可以通过 nano 编辑器的命令行选项获得,比如在编辑之前创建备份文件。输入 man nano 来了解这些附加的命令行选项。
  • 作为控制台模式文本编辑器,vimnano强大和简洁之间提供了一种选择。

三、结束语

“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GTK官方教程

前言&#xff1a; 让你在开发中爱不释手的 GT 包。关注GSLS官网&#xff0c;查看更多源码 ヾ(✿&#xff9f;▽&#xff9f;)ノ工具包。 所有文章 小编尽量让读者可以 直接 读懂 与 完全 复制粘贴&#xff0c;其中复杂或较多 的源码 会有 源码 并 贴上 github 网址。 GT 类 里面…

图文并茂教你快速入门React系列04-状态管理

在React中&#xff0c;什么是状态&#xff1f; 响应式 使用 React&#xff0c;你不用直接从代码层面修改 UI。举个栗子哇&#xff0c;不用编写诸如“禁用按钮”、“启用按钮”、“显示成功消息”等命令。相反&#xff0c;你只需要描述组件在不同状态&#xff08;“初始状态”…

chatgpt赋能python:Python另存为在哪:一篇SEO指南

Python另存为在哪&#xff1a;一篇SEO指南 简介 Python是目前最流行的编程语言之一&#xff0c;它的高效性和易用性使得越来越多的人选择使用它来编写软件和web应用程序。然而&#xff0c;Python在保存文件时可能会有些棘手&#xff0c;尤其是在需要另存为不同格式或目录时。…

chatgpt赋能python:Python只取数字:你需要知道的一切

Python只取数字&#xff1a;你需要知道的一切 在当今数字化的时代&#xff0c;数字信息已经成为全球交流和经济活动的主要组成部分。因此&#xff0c;在处理数据时&#xff0c;我们经常需要从文件中提取数字信息。Python是一种广泛应用于数据处理和分析的编程语言&#xff0c;…

Java面向对象程序开发——基础

文章目录 前言类和对象类对象 构造方法匿名对象变量作用域this关键字总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; Java 是一种以面向对象编程为基础的编程语言 在 Java 编程中&#xff0c;一切皆为对象 每个对象都有其自己的属性和方法 对象可以…

图论试题2021

25 A&#xff1a;最大度是7&#xff0c;大于了顶点数6&#xff0c;故不是简单图的度序列。 C&#xff1a;树的度序列至少要有两个度为1的顶点 D&#xff1a;只要度数为奇数的个数有偶数个&#xff0c;就是度序列。 A&#xff1a;每棵树的中心由一个点或两个相邻点组成 B&…

碳中和城市建筑能源系统(1):能源篇(龙惟定)2022

碳中和城市建筑能源系统(1):能源篇 碳中和城市建筑能源系统&#xff08;1&#xff09;&#xff1a;能源篇&#xff08;龙惟定&#xff09;2022 碳中和城市建筑能源系统&#xff08;2&#xff09;&#xff1a;网络篇&#xff08;龙惟定&#xff09;2022 碳中和城市建筑能源系统&…

chatgpt赋能python:Python可以用i++吗?——探讨Python自增自减运算符

Python可以用i吗&#xff1f;——探讨Python自增自减运算符 Python作为一门高级编程语言&#xff0c;一直以来都备受开发者们的喜爱。Python以代码简洁、语言简单易懂、易于学习等特点而赢得了广大开发者的信赖。然而&#xff0c;在Python中并没有i这样的自增自减运算符&#…

计算机网络第一章——计算机系统结构(下)

提示&#xff1a;总角之宴&#xff0c;言笑晏晏。信誓旦旦&#xff0c;不思其反。反是不思&#xff0c;亦已焉哉。 文章目录 1.2.1 分层结构&#xff0c;协议&#xff0c;接口和服务为什么要有分层&#xff1f;怎么分层正式认识分层结构概念总结 1.2.2 OSI 参考模型ISO参考模型…

软考A计划-电子商务设计师-电子商务系统分析与设计

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

【JUC基础】14. ThreadLocal

目录 1、前言 2、什么是ThreadLocal 3、ThreadLocal作用 4、ThradLocal基本使用 4.1、创建和初始化 4.2、存储和获取线程变量 4.3、清理和释放线程变量 4.4、小结 4.5、示例代码 5、ThreadLocal原理 5.1、set() 5.2、get() 5.3、变量清理 5.4、ThreadLocalMap 6、…

硬链接与符号链接

硬链接与符号链接(Hard Link vs Symbolic Link) 两者对于 Linux 操作系统的异同、优缺点。 什么是链接&#xff1f; 在最一般的意义上&#xff0c;链接是两个对象之间的连接。更具体地说是在计算方面&#xff1b;根据牛津定义&#xff0c;链接是与代码或指令的连接&#xff0c…

【读书笔记】《平凡的世界》- 路遥

他又进一步想&#xff0c;郝红梅抛开他而和顾养民相好&#xff0c;也完全是正常的啊&#xff01;他自己在哪方面都无法和顾养民比较。男女相好&#xff0c;这是两厢情愿的事&#xff0c;而怎能像乡俗话说的“剃头担子一头热”呢&#xff1f; 青春激流打起的第一个浪头在内心渐渐…

Eclipse不用删除之前的项目也可以多次导入相同的项目,操作十分简单!!

问题引入 当我们在学习时&#xff0c;常常需要多次导入网上的同一个案例进行查看效果或者导入自己的项目、用于进行代码测试&#xff0c;原来的项目要继续保留&#xff0c;作为备份&#xff0c;防止代码测试对代码修改过火&#xff0c;一去不返。但当我们导入在Eclipse项目管理…

JavaScript蓝桥杯------学海无涯

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 小蓝最近一直在云课平台学习&#xff0c;为了更好的督促自己&#xff0c;于是将每天的学习时间都记录了下来&#xff0c;但是如何更加直观的显示学习时间让小蓝很是苦恼。本题需要你使用 ECharts 帮助小蓝实现统计学习…

【C/C++】基础知识之动态申请内存空间new-delete

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

对Java远程热部署实践学习和分析

目录 一、热部署现状和必要性分析 &#xff08;一&#xff09;热部署定义和现状分析 &#xff08;二&#xff09;技术实现难度分析 &#xff08;三&#xff09;其必要性分析 二、走进美团Java远程热部署实践 &#xff08;一&#xff09;Sonic分析 &#xff08;二&#x…

Delphi11的多线程ⓞ,附送图片处理代码

Delphi11的多线程ⓞ OLD Coder , 习惯使用Pascal 接下来准备启用多线程&#xff0c;毕竟硬件多核&#xff0c;Timer不太爽了&#xff08;曾经的桌面&#xff0c;都是Timer——理解为“片”&#xff09; 突然想写写&#xff0c;不知道还有多少D兄弟们在。 从源码开始 用D11之…

第1节:vue cesium 概述(含网站地址+视频)

在开始介绍vue cesium之前&#xff0c;我们先聊聊cesiumjs&#xff0c;如果你对这块内容比较熟悉&#xff0c;可以直接跳过这节内容。 cesiumJS 简介 官方网址&#xff1a;https://cesium.com/platform/cesiumjs/ CesiumJS 是一个开源 JavaScript 库&#xff0c;主要用于基于…

Linux之理解文件系统——文件的管理

文章目录 前言一、磁盘1.磁盘的物理结构2.磁盘的存储结构3.磁盘的逻辑结构 二、文件系统与inode1.文件在磁盘中是如何存储的&#xff1f;2.对文件进行操作 三、软硬链接1.软链接创建软链接&#xff1a;inode删除软链接&#xff1a;软链接的作用&#xff1a; 2.硬链接创建硬链接…