Notes d'étude de base Linux - Éditeur de programme VIM

Éditeur de programme VIM

1. Utilisation de vi

Fondamentalement, vi est divisé en trois modes, à savoir: le mode de commande général, le mode d'édition et le mode de commande en ligne de commande .

  • Mode de commande général

    Ouvrez un fichier avec vi pour entrer directement dans le mode de commande général (c'est le mode par défaut, également appelé mode général pour faire court). Dans ce mode, vous pouvez déplacer le curseur «vers le haut, le bas, la gauche et la droite», utiliser «supprimer des caractères» et «supprimer des lignes entières» pour traiter les fichiers, ou utiliser «copier-coller» pour traiter vos données de fichier .

  • Mode édition

    En mode normal, vous pouvez supprimer, copier, coller, etc., mais vous ne pouvez pas modifier le contenu du fichier! Vous devez attendre d'appuyer sur l' une des touches "i, I, o, O, a, A, r, R" pour entrer en mode d'édition.

  • Mode de commande en ligne de commande

    En mode normal, entrez l'une des trois touches «: /?» Pour déplacer le curseur vers la colonne du bas . Dans ce mode, l'action de "recherche de données" peut être fournie, et des tâches telles que la lecture, l'enregistrement, le remplacement de caractères, la sortie de vi et l'affichage des numéros de ligne sont toutes achevées dans ce mode .

[Échec du transfert de l'image du lien externe. Le site source dispose peut-être d'un mécanisme anti-hotlink. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-JLtID3xx-1596852243831) (E: \ study notes \ Linux \ Linux learning \ vi mode switch.png)]

1.1. Description des touches disponibles en mode commande générale, déplacement du curseur, copier-coller, rechercher et remplacer, etc.

Comment déplacer le curseur
Touches directionnelles haut bas Gauche Droite
[Page suivante / précédente] Page bas / haut
n <espace> n représente le nombre. Appuyez sur le nombre puis sur l'espace, le curseur se déplacera vers la droite pour n caractères dans cette ligne
0 ou [Accueil] Déplacer vers le haut de cette ligne
$ Ou [Fin] Aller à la fin de cette ligne
g Passer à la dernière ligne de ce fichier
nG n est un nombre. Passer à la nième ligne de ce fichier
gg Passer à la première ligne de ce fichier
n <Entrée> n est un nombre. Curseur sur n lignes
Rechercher et remplacer
/mot Recherchez une chaîne nommée mot sous le curseur
?mot Recherchez une chaîne nommée mot au-dessus du curseur
n Répétez l'action précédente
N Répétez l'action précédente en sens inverse
: n1, n2s / mot1 / mot2 / g n1 et n2 sont des nombres. Trouvez la chaîne de caractères mot1 entre n1 et n2, et remplacez ce caractère par mot2!
: 1, $ s / mot1 / mot2 / g Idem que ci-dessus de la première ligne à la dernière ligne
: 1, $ s / mot1 / mot2 / gc Inviter l'utilisateur à confirmer avant de remplacer (confirmer)
Supprimer, copier et coller
jj Supprimer la ligne où se trouve le curseur
ndd Supprimer les n lignes vers le bas où se trouve le curseur
yy Copiez la ligne où se trouve le curseur
nyy Copiez les n lignes vers le bas à partir de la ligne où se trouve le curseur
p, P Collez les données copiées dans la ligne suivante du curseur, et P est la ligne précédente
u Annuler l'action précédente
[Ctrl] + r Répétez l'action précédente

1.2. Description des touches disponibles pour passer du mode commande générale au mode édition

Entrer en mode d'édition d'insertion ou de remplacement
moi, je Entrer en mode insertion
i signifie " insérer à partir de la position actuelle du curseur"; I signifie "insérer au premier caractère non espace de la ligne courante"
a, A Entrez dans le mode d'insertion
a est " Insérer à partir du caractère suivant où se trouve actuellement le curseur", A est "Insérer à partir du dernier caractère de la ligne où se trouve le curseur"
o, O Entrer en mode insertion
o signifie «insérer une nouvelle ligne à la position actuelle du curseur», O signifie «insérer une nouvelle ligne à la position actuelle du curseur»
r, R Entrer dans le mode de remplacement
r ne remplacera qu'une seule fois le caractère où se trouve le curseur, et R remplacera toujours le fichier où se trouve le curseur, jusqu'à ce que la touche ESC soit enfoncée

1.3. Description des boutons disponibles pour passer du mode commande générale au mode ligne de commande

Instructions pour stocker et quitter le mode ligne de commande
: w Ecrire le fichier édité sur le disque dur
: w! Si l'attribut de fichier est "lecture seule", il est obligatoire d'écrire. Mais en fin de compte, cela a à voir avec les autorisations de fichiers
: q Quitter vi
: q! Ne pas sauvegarder, forcer le départ
: wq Économisez
ZZ Si le fichier est modifié, enregistrez et quittez; s'il n'y a pas de changement, partez sans enregistrer
:w [文件名] 将编辑的文件保存到另一个文件中
:r [文件名] 在编辑的数据中,读入另一个文件的数据。即将文件的内容加到光标所在的行之后
vi 环境的变更
:set nu 显示行号
:set nonu 取消行号

1.4、VIM 的暂存文件、救援回复与开启时的警告信息

[root@li ~]# cd /tmp/testpw/
[root@li testpw]# vim man_db.conf
						#按下 [Ctrl]-z
[1]+  已停止               vim man_db.conf

[root@li testpw]# ls -al
总用量 2024
drwxr-xr-x.  2 root root     140 8月   8 09:35 .
drwxrwxrwt. 19 root root    4096 8月   8 09:35 ..
-rw-------.  1 root root    4096 8月   8 09:35 .man_db.conf.swp	#暂存文件
...

[root@li testpw]# kill -9 %1
						#中断 vim 的工作
[1]+  已停止               vim man_db.conf
[root@li testpw]# ls -al .man_db.conf.swp	
-rw-------. 1 root root 4096 8月   8 09:35 .man_db.conf.swp	#暂存文件还是会存在
[1]+  已杀死               vim man_db.conf

那么此时编辑 man_db.conf 会出现什么情况呢?

[root@li testpw]# vim man_db.conf
E325: 注意
发现交换文件 ".man_db.conf.swp"
            所有者: root    日期: Sat Aug  8 09:35:51 2020
            文件名: /tmp/testpw/man_db.conf
            修改过: 否
            用户名: root      主机名: li.erver
           进程 ID: 15396
正在打开文件 "man_db.conf"

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    如果是这样,请用 ":recover""vim -r man_db.conf"
    恢复修改的内容 (请见 ":help recovery")。
    如果你已经进行了恢复,请删除交换文件 ".man_db.conf.swp"
    以避免再看到此消息。

交换文件 ".man_db.conf.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):

上面 vim 提示两点主要的问题与解决方案:

  • 问题 1 :可能有其他人或程序正在同时编辑这个文件,解决方法是:
    1. 找到另一个程序或人员,请他结束 vim 的工作;
    2. 如果你只是要看该文件的内容并不会修改的话,那么你可以选择开启称为只读文件,即上述最后一行的 O。
  • 问题 2:可能不知名的原因导致 vim 中断:
    1. 如果你之前的 vim 动作没有保存,此时按下 R 按键,此时会加载 .man_db.conf.swp 的内容,然后自行决定是否保存。但是这个暂存文件不会自动删除,必须手动删除,不然每次编辑这个文件,都会出现警告信息。
    2. 如果你确定那个暂存文件是没用的,直接按下 D 按键,删除暂存文件。

2、VIM 的额外功能

2.1、区块选择

区块选择的按键说明
v 字符选择
V 行选择
[Ctrl]+v 区块选择,可以用长方形的方式选择资料
y 复制
d 删除
p 粘贴

2.2、多文件编辑

多文件编辑按键
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个 vim 的开启的所有文件

2.3、多窗口功能

多窗口功能按键
:sp [文件名] 开启一个新窗口,如果加上文件名,表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件(同步显示)
[Ctrl]+w+j
[Ctrl]+w+↓
先按下 [Ctrl] 不放,再按下 w 后放开所有的按键,然后按下 j 或 ↓
[Ctrl]+w+k
[Ctrl]+w+↑
同上
[Ctrl]+w+q 结束当前窗口

[Ctrl]+w+↑ | 同上 |
| [Ctrl]+w+q | 结束当前窗口 |

在这里插入图片描述

Je suppose que tu aimes

Origine blog.csdn.net/qq_36879493/article/details/107875449
conseillé
Classement