`

Linux入门:VI/VIM

阅读更多

练习vim按键的小游戏:http://vim-adventures.com/

 
 
一、vi、vim介绍
 
文本编辑器分为:
(1)基于图形界面,如gedit、geany等;
(2)基于命令行,如nano、vi、joe等;
每个命令行界面的文本编辑器都有各自不同的快捷键,比如nano的保存为CTRL+W,vim的保存为:w;
基于命令行的文本编辑器是必要的,因为Linux的tty1~tty6都是命令行界面,是打不开图形界面的文本编辑器的;
 
vi是每个Linux Distribution都默认安装的文本编辑器,并且很多软件的默认编辑器都是vi,因此学习vi是很必要的;
vim是vi的高级版本,vi是文本编辑器,而vim应该说是程序编辑器,因为能够像一般的IDE一样,根据文件名载入不同的语法高亮,即颜色区分,比如java文件会遵循java的语法高亮;
下面我们就编写一个"hello world"的java程序来看看vim的语法高亮;
 
可以看出vim有很好的语法检查功能,因为关键字都使用了不同的颜色标出;
 
 
vi有三种模式:
(1)一般模式:进入vi的默认模式,能够进行复制、黏贴、删除等操作;
(2)编辑模式:从一般模式按下‘i’即可进入;
(3)命令行模式:从一般模式按下“:”、'?'、'/'即可进入;
 
注意:如果安装了vim后,输入vi后也是使用vim编辑器,我们输入alias后看到“alias vi='vim'”;
 
 
二、vi/vim按键
 
 

一般模式的常用按键

h

向左

J

向下

K

向上

l

向右

20h

向左20个字符

20j

向下20

20k

向上20

20l

向右20个字符

Page Up

向上翻页

Page Down

向下翻页

Home

光标移到当前行的最左端

End

光标移到当前航的最右端

n [空格]

光标向右移动n个字符

N[Enter]

光标向下N

G

光标移到最后一行

nG

光标移动到第n

gg1G

光标移动到第一行

/word

向下查找word

?word

向上查找word

n

如果是/word后使用,则表示向下继续查找;

如果是?word后使用,则表示向上继续查找;

N

如果是/word后使用,则表示向上继续查找;

如果是?word后使用,则表示向下继续查找;

:n,m/old/new/g

从第n行到第m行中,将old替换为new

:n,$s/old/new/g

从第n行到最后一行中,将old替换为new

u

类似windows中的CTRL+Z,前一步

x

向后删除一个字符

X

向前删除一个字符

3x

向后删除3个字符

3X

向前删除3个字符

dd

删除当前行

3dd

删除当前行开始的3

yy

复制当前行

3yy

复制当前行开始的3

p

黏贴到当前光标的下一行

P

黏贴到当前光标的上一行

CTRL+r

重做前一个操作

.

重复前一个操作

 

命令行模式的常用按键

:w

保存

:q

退出vim

:wq

保存并退出

:wq!

(在可以转换权限的情况下)强制保存并退出

:q!

直接退出不保存

:w filename

另存为filename

:n,m w filename

将第n行到第m行另存为filename

:set nu

显示行号

:set nonu

不显示行号

:! command

暂时离开vim,并执行command,执行完后再进入vim

:r filename

filename文件的数据读入当前文件

:set all

显示当前vim的环境配置

 
三、vim的恢复机制
 
 
vim正在编辑某个文件时都会同时存在 .file.swp,此文件用来暂存,帮助恢复文件内容,当vim正常关闭此文件时,.filename.swp文件会消失;
 
 
我们看到图中说明了出现此界面的两个原因:
(1)多人同时编辑此文件:因为Linux是多用户的操作系统,因此可能两个人同时登陆并编辑此文件,如果A进入系统开始编辑1.txt文件,则会出现.1.txt.swp,当A还没编辑完但B也想进去编辑时,因为此文件的目录中存在.1.txt.swp,则就会出现上图的界面;
(2)非正常关闭文件;
 
图中最后一行说明了我们此时可以采取的几个动作:
(1)o:以只读方式打开;
(2)R:恢复,即从swp文件中恢复,但是swp文件不会随着vim关闭而删除,需要手动删除;
(3)d:删除swp文件;
(4)q:退出vim;
 
四、vim记录及默认配置文件
 
 
/etc/vimrc文件为全局vim配置文件;
 
1.如果我们用xiazdong账户使用vim后,在/home/xiazdong就会出现.viminfo文件,此文件用来作为vim的日志,记录用户使用vim打开了什么文件,做了什么操作;
2.如果xiazdong账户想要配置vim的默认环境,则可以在/home/xiazdong创建.vimrc,并且配置一些特征,比如显示行号,语法检查等;
一般使用如下配置:

set hlsearch
set backspace=2
set autoindent
set nu
set ruler
set showmode
set bg=dark
syntax on

 
 
五、Visual Block功能
 
可以用于块复制;
(1)CTRL+v:开始复制块;
(3)y:复制块;
(4)p:黏贴块;
(5)d:删除块;
 
 
 
六、同时编辑多个文件
 
多文件编辑的好处是能够将一个文件的某些内容yy后,p到另一个文件中;
 
vim file1 file2 即可同时编辑两个文件,但是屏幕中同时只会出现一个文件内容,需要进行切换;
(1):n:向下切换;
(2):N:向上切换;
(3):files:列出当前编辑的所有文件;
 
七、多窗口编辑
 
如下图:一个界面能够显示多个文件内容;
 

 
(1) :sp :打开当前文件;
(2) :sp filename:打开filename文件;
 
(1)CTRL+w+↓:光标切换到下一个窗口;
(2)CTRL+w+↑:光标切换到上一个窗口;
(3):q:关闭光标所在的窗口;
 
 
八、编码问题
 
 
可能会出现乱码问题,解决方法:保持终端的字符编码与文件的字符编码一致!
tty1~tty6不支持显示中文,因此在tty1~tty6中显示中文必出现乱码;
设置终端的字符编码:
 
编码转换命令:iconv
iconv -f 文件的原本编码 -t 文件的新编码 filename -o newfilename
比如有一个big5编码的文件:1.big5,要转换成utf8的文件:2.utf8,则: iconv -f big5 -t utf8 1.big5 -o 2.utf8
分享到:
评论

相关推荐

    vi vim入门简明实例教程

    ### vi/vim 入门简明实例教程 #### 前言 vi(vim)作为一款功能强大的文本编辑器,在 Linux 系统中扮演着极其重要的角色。它不仅支持简单的文本编辑,还提供了丰富的功能来满足高级用户的需求。对于初学者而言,...

    Linux 基础指令 Linux入门

    Linux 基础指令 Linux入门 Linux 作为一个通用的操作系统,提供了强大的命令行接口,掌握基础指令是使用 Linux 的必备技能。本文将对 Linux 的基础指令进行详细的介绍,包括重要目录、基本指令、Vi 和 vim 编辑器、...

    学习VI与VIM编辑器中/英文版

    通过上述知识,您可以全面了解并掌握VI与VIM编辑器的基本操作和高级技巧,从而在Linux或UNIX环境中更高效地进行文本编辑工作。无论是日常开发还是系统维护,熟练掌握VIM都将极大地提升您的工作效率。

    C C++ Linux程序员必须了解的10个工具及下载网址

    - [Ctags与Vim集成教程](http://www.linux-tutorial.info/modules.php?name=Howto&pagename=C-editing-with-VIM-HOWTO/random.html) - [Cscope使用指南]...

    vim键位图打印版整理

    本人一开始也是vim菜鸟一个,接触过linux/unix的朋友或者程序猿,都非常希望能用上逼格顶上天的vim,但是因为vim各种模式,各种高级快捷操作,入门很难。我自己也是过来人,但是我搞到了高效的使用和增强记忆的vim...

    linux实验报告vi编辑器的使用.pdf

    Linux实验报告Vi编辑器的使用 本文将对Vi编辑器的使用进行详细的...掌握Vi(Vim)最简单的用法,以让我们作为Linux入门级用户在最短的时间内学会使用它。并且在今后的学习中要能够熟练的使用Vi/Vim编辑器,加强练习!

    vim简介,讲解linux/unix下的开发工具vim的使用

    vim,全称为Vi IMproved,是Unix/Linux系统下的一款高度优化的文本编辑器,它在原始vi的基础上进行了诸多增强与改进,成为了现代操作系统中最受欢迎和广泛使用的编辑器之一。本文将深入讲解vim的基本概念、工作模式...

    Learning the vi and Vim Editors, Seventh Edition

    Vim(vi改进版):入门指南** - **概述**(第146页):本章提供了关于Vim编辑器的总体介绍,包括其历史背景和发展。 - **获取Vim**(第150页):指导用户如何在不同的操作系统上安装和配置Vim。 - **对新手的帮助...

    linux学习.pdf

    本文档主要介绍了Linux操作编程的入门知识,特别是vi/vim文本编辑器的使用,以及Linux下C++程序的编译和链接过程。 首先,vi/vim是Linux下最常用的文本编辑器之一。vi/vim分为三种模式:命令模式、插入模式和底线...

    linux入门须知,linux入门简介,认识linux基本工具,基本操作

    下面将详细讲解Linux入门的一些关键知识点。 首先,从"第1章 认识ubuntu linux.pdf"开始,Ubuntu是Linux发行版中最受欢迎的一种,它以其用户友好的界面和丰富的软件库而闻名。学习Ubuntu Linux能帮助初学者快速熟悉...

    Linux入门安装命令技巧等

    本教程旨在为初学者提供一份详尽的Linux入门指南,涵盖了从安装到基本命令的使用,帮助你快速掌握这个强大而开源的操作系统。 第一章:Linux简介 Linux是一种自由且开放源码的类UNIX操作系统,基于POSIX标准。它由...

    Red Hat Linux指南:基础与系统管理篇

    3. 文本编辑器:学习使用vi/vim或nano编辑文本文件,包括配置文件的修改。 4. 网络连接:配置网络接口,设置静态或动态IP,使用ping、ifconfig、dhclient等命令测试网络连接。 四、系统管理 1. 用户和权限:理解...

    linux 入门,linux基本命令

    Linux入门是每位对开源操作系统感兴趣的人必经之路。Linux以其强大的稳定性和灵活性,在服务器领域占据主导地位,并在桌面环境中逐渐普及。本资料“Linux入门”是针对初学者设计的,旨在揭开Linux神秘的面纱,让你...

    linux-vimgalore中文翻译

    Vim,全称Vi IMproved,是一款强大的文本编辑器,广泛应用于Linux系统中。它以其高效的操作方式和高度可定制性赢得了程序员和系统管理员的青睐。"Vim从入门到精通"旨在帮助用户深入了解Vim的功能,提升编辑效率,...

    linux入门文档全集

    例如,`ls`用于列出目录内容,`cd`用于切换目录,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`进行文件复制和移动,`cat`查看文件内容,`vi/vim`是常用的文本编辑器,`grep`用于搜索文本,`find`查找文件,`...

    linux入门linux入门linux入门

    Linux入门是每位对开源操作系统感兴趣的人必经的阶段。Linux是一种自由和开放源代码的类UNIX操作系统,它的内核由林纳斯·托瓦兹在1991年首次发布。Linux系统广泛应用于服务器、超级计算机、移动设备以及嵌入式系统...

    vim 经典之作,值得学习

    本文将围绕“VIM入门与进阶”这一主题展开,通过对给定文件中的内容进行深入解析,帮助读者理解Vim的基本概念、历史背景及其主要功能特性。 #### Vim的历史与发展 - **vi的诞生**:1976年,Bill Joy为Unix系统开发...

    Linux入门文档整理_linux入门_源码

    10. `vi/vim`:文本编辑器,用于创建和编辑文件。 11. `sudo`:以管理员权限执行命令,如 `sudo apt-get install package` 安装package。 三、用户和用户组管理 1. 用户管理:Linux系统中,每个用户都有一个唯一ID...

    Learning the vi and Vim Editors第7版

    作为一本全面的参考书籍,它不仅适合初学者入门,也适用于有经验的用户深入探索vi和Vim的强大功能。 #### 作者简介 - **Arnold Robbins**: 是一位著名的计算机科学家,专注于Unix/Linux环境下的文本处理工具。他...

Global site tag (gtag.js) - Google Analytics