注:在Linux的系统中使用文本编辑器来编辑Linux参数配置文件
在Linux中,绝大多数的配置文件都是以ASCII的纯文本形态存在。因此,可以利用简单的文本编辑软件修改设定。
注:什么是纯文本文档?
档案记录的是0与1,通过编码系统来将这些0与1转化为文字。
学习vim的原因:
·vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
·程序简单,编辑速度快
·多个软件的编辑接口都会主动呼叫vi
什么是vim:
vi的进阶版本,vim可以用颜色或底线等方式显示一些特殊信息。
vim会依据档案的扩展名或是开头信息,判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。
vim是个程序编辑器。
vi是老式的字处理器。vim是程序开发工具而不是文字处理软件。
vi共分为三种模式【一般模式】【编辑模式】【指令列命令模式】
·一般模式:以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用上下左右按键来移动光标,可以使用【删除字符】【删除整行】来处理档案内容,也可使用【复制、粘贴】处理文件数据
·编辑模式:按下【i、I、o、O、a、A、r、R】进入编辑模式,按下这些案件时,在画面的左下方会出现【INSERT】字样。要回到一般模式时,必须按下【Esc】键才可推出编辑模式
·指令列命令模式:在一般模式中 ,输入【:/?】三个中的任何一个按钮,可将光标移动到最底下一行。在命令行模式下,可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作。
vi test.txt
输入【vi 档名】进入vi一般模式,vi后面一定要加档名,不管档名存在与否 。
按下【Esc】键回到一般模式
输入【:wq】存档离开(按下:光标就移动到最底下一行)
如果权限为-r–r–r–,可能会无法写入,输入【:wq!】强制写入
注:vim的三种模式只有一般模式可以与编辑、指令列命令模式切换,编辑模式与命令模式之间不能切换
·第一部分:一般模式可用的按钮说明。
| 移动光标的方法 |
|
| h或向左箭头 |
光标向左移动一个字符 |
| j或向下箭头 |
光标向下移动一个字符 |
| k或向上箭头 |
光标向上移动一个字符 |
| l或向右箭头 |
光标向右移动一个字符 |
| ctrl+f |
屏幕向下移动一页,相当于【page down】 |
| ctrl+b |
屏幕向上移动一页,相当于【page up】 |
| ctrl+d |
屏幕向下移动半页 |
| ctrl |
屏幕向上移动半页 |
| + |
光标移动到非空格符的下一列 |
| – |
光标移动到非空格符的上一列 |
| n【space】 |
n代表数字,按下数字后再按空格键,光标会向右移动这一行的n个字符 |
| 0或【Home】 |
移动到这一行的最前面字符处 |
| $或【End】 |
移动到这一行的最后面字符处 |
| H |
光标移动到这个屏幕的最上方那一行的第一个字符
|
| M |
光标移动到这个屏幕的中央那一行的第一个字符 |
| L |
光标移动到这个屏幕的最下方那一行的第一个字符 |
| G |
移动到这个档案的最后一行 |
| nG |
n为数字。移动到这个档案的第n行(可配合:set nu) |
| gg |
移动到这个档案的第一行 |
| n【Enter】 |
n为数字。光标向下移动n行 |
|
|
搜寻与取代
| /word |
向光标之下寻找一个名为word的字符串 |
| ?word |
像光标之上寻找一个字符串名为word的字符串 |
| n |
n为英文键。代表【重复前一个搜寻的动作】 |
| N |
N为英文键。与n刚好相反,反向进行前一个搜寻动作 |
| :n1,n2s/word1/word2/g |
n1与n2为数字。在n1与n2之间寻找word1
这个字符串,并将该字符串取代为word2
|
| :1,$s/word1/word2/g |
从第一行到最后一行寻找word1字符串,并将该字符串取代为word2 |
| :1,$/word1/word2/gc |
从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要取代 |
删除、复制、粘贴
| x,X |
在一行字当中,x为向后删除一个字符,X为向前删除一个字符 |
| nx |
n为数字,连续向后删除n个字符。 |
| dd |
删除游标所在的那一整列 |
| ndd |
n为数字,删除光标所在的向下n列 |
| d1G |
删除光标所在第一行的所有数据 |
|
dG
|
删除光标所在以后 |
| d$ |
删除游标所在处,到该列的最后一个字符 |
| d0 |
数字为0的,删除游标所在处,到改行的最前面 |
| yy |
复制游标所在的那一行 |
| nyy |
n为数字,复制光标所在的向下n列 |
| y1G |
复制光标所在列到第一列的所有数据 |
| yG |
复制光标所在列到最后一列的所有数据 |
| y0 |
复制光标所在的那个字符到该行行首的所有数据 |
| y$ |
复制光标所在的那个字符到该行行尾的所有数据 |
| P,p |
P为将已复制的数据在光标下一行粘贴上,p为贴在游标上一行 |
| J |
将光标所在列与下一列的数据结合成同一列 |
| c |
重复删除多个数据 |
| u |
重复前一个动作 |
| 【ctrl】+r |
重做上一个动作 |
| . |
重复前一个动作 |
·第二部分:一般模式切换到编辑模式的可用按键说明
进入插入或取代的编辑模式
| i,I |
进入插入模式:i为从目前光标所在处插入
I为在目前所在行的第一个非空格符处开始插入
|
| a,A |
进入插入模式:a为从目前光标所在的下一个字符处开始插入
A为从光标所在行的最后一个字符处开始插入
|
| o,O |
进入插入模式:o为在目前光标所在的下一行处插入新的一行
O为在目前光标所在处的上一行插入新的一行
|
| r,R |
进入取代模式:r只会取代光标所在的那一个字符一次
R会一直取代光标所在的文字,直到按下【Esc】为止
|
| 【Esc】 |
退出编辑模式,回到一般模式中 |
·第三部分:一般模式切换到命令行模式
指令列的存储、离开等指令
| :w |
将编辑的数据写入硬盘档案中 |
| :w! |
若文件属性为【只读】时,强制写入该档案 |
| :q |
离开vi |
| :q! |
若曾修改过档案,又不想存储,使用!强制离开不能存储档案 |
| :wq |
存储后离开,若为:wq!强制储存后离开 |
| ZZ |
大写的Z,若档案没有更动,则不存储离开,若档案已经被更动过,则存储后离开 |
| :w【filename】 |
将编辑的数据储存成另一个档案 |
| :r【filename】 |
在编辑的数据中,读入另一个档案的数据,将【filename】这个档案内容加到游标所在的行后 |
| :n1,n2 w[filename] |
将n1到n2的内容存成filename这个档案 |
| :!command |
暂时离开vi到指令列模式下执行command的显示结果 |
vim环境的变更
| :set nu |
显示行号,设定之后,会在每一行的前缀显示改行的行号 |
| :set nonu |
与set nu相反,取消行号 |
vi中,数字通常代表重复做几次的意思,也可能代表去到第几个什么什么的意思
1)在/tmp这个目录下建立一个名为test的目录
mkdir /tmp/test
2)进入test这个目录当中
cd /tmp/test
3)将/etc/man.config复制到本目录底下
cp /etc/man.config .
4)使用vi开启本目录下的man.config这个档案
vi man.config
5)在vi中设定一下行号
:set nu
6)修改完之后,突然反悔,要全部复原,有哪些方法
一直按【u】键回复到原始状态
使用不存储离开【:q!】之后,再重新读取一次该档案
区块选择的按键意义
| v |
字符选择,将光标经过的地方反白选择 |
| V |
行选择,会将光标经过的地方反白选择 |
| ctrl+v |
区块选择,可以用长方形的方式选择资料 |
| y |
将反白的地方复制起来 |
| d |
将反白的地方删除掉 |
多档案编辑的按键
| :n |
编辑下一个档案 |
| :N |
编辑上一个大难 |
| :files |
列出目前这个vim的开启的所有档案 |
多窗口情况下按键功能
| :sp[filename] |
开启一个新窗口,如果有加filename,表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示) |
|
【ctrl】+w+j
|
按键按法:先按下【ctrl】不放,再按下w后放开所有的键,然后再按下j(或向下箭头键),光标可移动到下方的窗口 |
| 【ctrl】+w+k |
同上 |
| 【ctrl】+w+q |
等价于:q结束离开 |
vim的环境设定参数
|
:set nu
:set nonu
|
设定于取消行号 |
|
:set hlsearch
:set nohlsearch
|
设定是否将搜寻的字符串反白 |
|
:set autoindent
:set noautoindent
|
是否自动缩排 |
| :set backup |
是否自动存储备份档 |
| :set ruler |
显示或者不显示该设定值 |
| :set showmode |
是否要显示–INSERT–之类的字眼在左下角的状态栏 |
| :set backspace=(012) |
一般按下i进入编辑模式后,可以利用【backspace】来删除任意字符。但是,某些情况不允许。当backspace为2时,可删除任意值。0或1,仅可删除刚刚输入的字符,无法删除原本已经存在的文字。 |
| :set all |
显示目前所有的环境参数设定 |
| :set |
显示于默认值不同的设定参数 |
|
:syntax on
:syntax off
|
是否依据程序相关语法显示不同的颜色。例:编辑纯文本文档时,如果以#开头,该行会变成蓝色。 |
|
:set bg=dark
:set bg=light
|
显示不同的颜色色调,预设是【light】 |
注:整体vim的设定值一般是放在/etc/vimrc档案
中文档案中一堆乱码,需要考虑:
终端界面的语系与LANG这个变数有关
档案原本的编码
开启终端机的软件