首页 > 系统相关 >Linux 开发环境搭建与使用——Linux 常用编辑器之vim

Linux 开发环境搭建与使用——Linux 常用编辑器之vim

时间:2022-09-28 21:42:03浏览次数:77  
标签:文件 vi 模式 vim 编辑 编辑器 Linux 光标


概述

vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉几乎所有的 Linux 发行版中都包含 vi 程序。



vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的。


那 vim 又是什么呢?



vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。vim 普遍被推崇为类 vi 编辑器中最好的一个。

官网:​​http://www.vim.org/download.php​


使用 vim 时,通用需要 ctags 工具辅助。ctags 是 vim 下方便代码阅读的工具,是很强大的 vim 插件,有了它浏览代码时可以在函数, 变量之间跳来跳去等等。

官网:​​http://ctags.sourceforge.net/​


准备工作

1)安装 vim,ctags:

sudo apt-get install vim

sudo apt-get install ctags

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_Linux


2)配置 vim:

,运行脚步即可完成相应配置。

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_Linux_02


vim 最简单最常用的操作

以下操作,使用 vi 或 vim 命令是等价的。


先给大家介绍一种最简单最常用的操作(打开文件,编辑文件,保存文件),如果不深入探究,学习这几个操作即可。


1)使用 vi 打开文件

vi filename:打开或新建文件,并将光标置于第一行行首


如果文件不存在,则会新建文件,如下:

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_打开文件_03

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_打开文件_04


如果文件存在,即为打开文件,打开文件后,按 “i” 进入插入模式后,才可以进行编辑:

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_Linux_05

由于 vim 配置原因,导致如上图的分栏,按 “F9” 即可实现隐藏显示分栏切换。


默认的情况下,打开文件,是不能直接编辑的:

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_Linux_06


2)按 “i”

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_命令模式_07


vi +n filename:打开文件,并将光标置于第 n 行行首

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_vim_08

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_命令模式_09


3)保存文件(其中一种方式):

一定要先退出插入模式,然后,shift + zz (按住 “shift” + 按两下“z”键) 即可保存退出当前文件。


vim 的详细使用

vim 编辑器有 3 个操作模式(模式的名字不重要,我总分不清,知道每种模式下干什么事即可):


1、vi 插入模式
vi 创建一个不存在文件时,默认进入插入模式
vi 将输入的字符作为正文内容放在正在编辑的文件中

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_打开文件_10

2、vi 编辑模式
vi 打开一个已经存在文件时,默认进入编辑模式
在此模式下可进入插入模式、控制屏幕光标的移动、进行文本的选择、复制、粘贴、剪切、删除、查找等工作。

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_Linux_11

3、vi 最后一行模式 ( 命令模式 )
在编辑模式下,按 “shift” + “ : ” 进入
跟编辑模式类似,完成存盘、另存、查找等任务

Linux 开发环境搭建与使用——Linux 常用编辑器之vim_命令模式_12


模式切换:

由编辑模式切换到插入模式

i 从光标当前位置开始插入

a

o

I

A

O


由编辑模式切换到最后一行模式(命令模式)

“shift” + “ : ”


由插入模式、命令模式切换到编辑模式

Esc(命令模式到编辑模式两次 Esc)


插入模式与命令模式不能直接转换


编辑模式下删除和修改文本

1、 u

2、[n]x

3、[n]X

4、[n]dd

5、[n]yy复制从当前行开始的 n 行。

6、 p把粘贴板上的内容插入到当前行。

7、 .执行上一次操作

8、shift +zz


编辑模式下的复制

yw

dw

cw


块选择命令

v:按字符选择

d:剪贴选择的内容到剪贴板。

y:拷贝选择的内容到剪贴板。

c:剪贴选择的内容到剪贴板并且进入插入模式

(n)shift + >所选内容向右移动一个tab

(n)shift + <所选内容向左移动一个tab


编辑模式下移动光标

[n]G:将光标定位到第n行开始处

G:将光标定位到文件结束处

gg:将光标定位到文件开始处


编辑模式下的查找

/字符串:从光标开始处向文件尾查找字符串。

n:同一方向重复上一次查找命令

N:反方向重复上一次查找命令


常用最后一行模式命令

文件存储类

:w保存当前文件

:w  file

:q  退出vi

:wq

:x   同上

:q!


普通模式下的多行剪切、复制

:n1,n2 d

:n1,n2 m n3

:n1,n2 co n3


最后一行模式下的查找和替换

:s/p1/p2/g

:g/p1/s//p2/g

:n1,n2s/p1/p2/g

标签:文件,vi,模式,vim,编辑,编辑器,Linux,光标
From: https://blog.51cto.com/u_3002289/5720946

相关文章

  • Linux 网络编程——原始套接字实例:MAC 地址扫描器
    如果A(192.168.1.1)向B(192.168.1.2)发送一个数据包,那么需要的条件有ip、port、使用的协议(TCP/UDP)之外还需要MAC地址,因为在以太网数据包中MAC地址是必须要有的。那么......
  • Linux 网络编程——IP 数据报格式详解
    IP数据报首部TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IPDatagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成。首部的前一部分是固定长度,共2......
  • vim 配置说明
    vim是公认很好用很完美,但是对新手来说,上手毕竟不是很容易。Windows下程序员很多都很喜欢SourceInsight这个工具来看代码,各种语法高亮看着很舒服。vim作为为程序员打造......
  • Linux 网络编程—— libpcap 详解
    概述libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。libpcap主要的作用1)捕获各种数据包,列如:网络流量统计。2)过滤网络数据包,列如......
  • Linux 网络编程——TCP 和 UDP 数据报格式详解
    TCP报文格式TCP(TransmissionControlProtocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP报文段的报头有10个必需的字段和1个可选字段......
  • Linux网络编程——原始套接字实例:MAC 头部报文分析
    ​​通过《Linux网络编程——原始套接字编程》得知​​,我们可以通过原始套接字以及 recvfrom()可以获取链路层的数据包,那我们接收的链路层数据包到底长什么样的呢?MAC头......
  • Linux系统编程——线程同步与互斥:互斥锁
    为什么需要互斥锁?在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在......
  • Linux系统编程——进程间通信:消息队列
    概述消息队列提供了一种在两个不相关的进程之间传递数据的简单高效的方法,其特点如下:1)消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息......
  • Linux系统编程——进程间通信:管道(pipe)
    管道的概述管道也叫无名管道,它是是UNIX系统IPC(进程间通信)的最古老形式,所有的UNIX系统都支持这种通信机制。无名管道有如下特点:1、半双工,数据在同一时刻只能在一个方向......
  • Linux高级网络开发奇妙之旅
    一、基础理论篇​​01、网络协议入门​​​​02、LAN、WAN、WLAN、VLAN和VPN的区别​​​​03、IP地址介绍​​​​04、广播地址介绍​​​​05、无连接和面向连接协议......