水果网站建设策划书,wordpress增加左侧悬浮菜单,网页传奇排名,科技成果转化平台vi
基本上 vi 共分为三种模式#xff0c;分别是【一般指令模式】、【编辑模式】与【指令列命令模式】。 这三种模式的作用分别是#xff1a; 一般指令模式(command mode) 以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式#xff0c;也简称为一般模式)。在这个模…vi
基本上 vi 共分为三种模式分别是【一般指令模式】、【编辑模式】与【指令列命令模式】。 这三种模式的作用分别是 一般指令模式(command mode) 以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式也简称为一般模式)。在这个模式中可以使用【上下左右】按键来移动光标可以使用【删除字符】或【删除整列】来处理文件内容也可以使用【复制、贴上】来处理文件数据。 编辑模式(insert mode) 在一般指令模式中可以进行删除、复制、贴上等等的动作但是却无法编辑文件内容的。要等到按下『i , I , o, O, aArR』等任何一个字母之后才会进入编辑模式。 通常在Linux中按下这些按键时在画面的左下方会出现【INSERT 或REPLACE】的字样此时才可以进行编辑。而如果要回到一般指令模式时则必须要按下【Esc】这个按键即可退出编辑模式。 指令列命令模式(command-line mode) 在一般模式当中输入『:/?』三个中的任何一个按钮就可以将光标移动到最底下那一列。在这个模式当中可以提供【搜寻资料】的动作而读取、存盘、大量取代字符、离开 vi、显示行号等等的动作则是在此模式中达成的。 一般指令模式可与编辑模式及指令列模式切换但编辑模式与指令列模式之间不可互相切换。
实例 1.使用 vi filename 进入一般指令模式 2.按下 i 进入编辑模式即可编辑文字 3.按下 Esc 按钮回到一般指令模式 4.进入文件列模式文件储存并离开 vi 环境。 使用:wq 存档write并离开quit。使用 ls -l 显示刚刚创立的文档 按键说明
移动光标
第一部份一般指令模式可用的按钮说明光标移动、复制贴上、搜寻取代等
按键说明h 或 向左箭头光标左移一个字符j 或 向下箭头光标下移一个字符k 或 向上箭头光标上移一个字符l 或 向右箭头光标右移一个字符
如果想要进行多次移动的话例如向下移动30列可以使用30j或30↓”的组合按键亦即加上想要进行的次数(数字)后按下动作即可。
按键说明[ctrl][f]屏幕向下移动一页相当于 [Page Down][ctrl][b]屏幕向上移动一页相当于 [Page Up][ctrl][d]屏幕向下移动半页[ctrl][u]屏幕向上移动半页 / -光标移动到非空格字符的 下 /上 一列nspacen代表数字按下数字后再按下空格键光标会向右移动这个列的 n 个字符。0 或 功能键 [Home]这是数字 0移动到这一列的最前面字符处$ 或 功能键 [End]移动到这一列的最后面字符处H光标移动到这个屏幕的最上方的那一列的第一个字符M光标移动到这个屏幕中央的那一列的第一个字符L光标移动到这个屏幕的最下方的那一列的第一个字符G光标移动到文件的最后一列nG移动到这个文件的第 n 列gg移动到这个文件的第一列相当于 1GnEntern 为数字。光标向下移动 n 列
搜寻与取代
按键说明/word向光标之下寻找一个名为 word 的字符串?word向光标之上寻找一个名为 word 的字符串nn 是英文按键代表重复前一个搜寻动作NN 是英文按键代表反向前一个搜寻动作前一个动作为 /word则按下 N 后表示动作?word:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1这个字符串并将其替代为 word2:1,$s/word1/word2/g从第一列到最后一列寻找 word1这个字符串并将其替代为 word2:1,$s/word1/word2/gc从第一列到最后一列寻找 word1这个字符串并将其替代为 word2且取代前显示提示字符给用户确认是否需要取代
删除复制与黏贴
按键说明x,X在一列字当中x 为向后删除一个字符相当于[del]按键)X 为向前删除一个字符(相当于[backspace]亦即是退格键)nx连续向后删除 n 个字符dd删除游标所在的那一列ndd删除游标所在的向下 n 列d1G删除光标所在到第一列的所有数据dG删除光标所在到最后一列所有的数据d$删除游标所在处到该列的最后一个字符d0删除游标所在处到该列最前面的一个字符yy复制游标所在的那一列nyy复制游标向下的 n 列y1G复制游标所在的第一列的所有数据yG 复制光标所在列到最后一列的所有数据y0复制光标所在的那个字符到行首的所有数据y$复制光标所在的那个字符到行尾的所有数据p,Pp 为将已复制的数据在光标下一列粘上P 则为粘在光标上一列。J将光标所在列与下一列的数据合成同一列c重复删除多个数据10cj 代表向下删除 10 列u复原前一个动作[ctrl]r重做上一个动作.重复前一个动作
第二部份一般指令模式切换到编辑模式的可用的按钮说明
进入插入或取代的编辑模式
按键说明i, I进入插入模式(Insert mode ) i 为【从目前光标所在处插入】Ⅰ为【在目前所在列的第一个非空格符处开始插入】a, A进入插入模式(Insert mode )a 为【从目前光标所在的下一个字符处开始插入】A 为【从光标所在列的最后一个字符处开始插入】o, O进入插入模式(Insert mode )o 为【在目前光标所在的下一列处插入新的一列】О 为在目前光标所在处的上一列插入新的一列r, R进入取代模式(Replace mode ) r 只会取代光标所在的那一个字符一次R 会一直取代光标所在的文字直到按下ESC为止ESC退出编辑模式
第三部份一般指令模式切换到指令列模式的可用按钮说明
指令列模式的储存、离开等指令
按键说明:w将编辑的数据写入硬盘文件中:w!若文件为只读强制写入该文件:q离开 vi:q!不保存强制离开:wq储存后来开若为 !wq 则为强制储存后离开ZZ若文件没有变动则不储存离开若文件更改过储存后离开:w [filename]将编辑的数据储存成另一个文件类似另存新档:r [filename]在编辑的数据中读入另一个文件的内容。即将 [filename] 中的内容加到光标后面:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filemname 这个文件:! command暂时离开 vi 到指令模式下执行 command 的显示结果。
vim 环境变更
按键说明:set nu显示 行号设定之后会在每一列的前缀显示该列的行号:set nonu与 :set nonu 相反取消行号
vim的暂存档、救援回复与开启时的警告讯息
当我们在使用vim 编辑时vim 会在与被编辑的文件的目录下再建立一个名为.filename.swp 的文件。
可能有其他人或程序同时在编辑这个文件 找到另外那个程序或人员请他将该 vim 的工作结束然后你再继续处理 如果只是要看该文件的内容并不会有任何修改编辑的行为那么可以选择开启成为只读(O)文件。在前一个 vim 的环境中可能因为某些不知名原因导致vim中断(crashed) 如果之前的 vim 处理动作尚未储存此时你应该要按下[R]亦即使用®ecover 的项目此时 vim 会载入.man_db.conf.swp 的内容让你自己来决定要不要储存。这样就能够救回来你之前未储存的工作。不过那个.man_db.conf.swp 并不会在你结束vim后自动删除所以你离开vim后还得要自行删除.man_db.conf.swp才能避免每次打开这个文件都会出现这样的警告 如果确定这个暂存盘是没有用的那么可以直接按下 [D] 删除掉这个暂存盘亦即(D)elete it这个项目即可。此时 vim 会载入man_db.conf 并且将旧的.man_db.conf.swp删除后建立这次会使用的新的.man_db.conf.swp。 [O]pen Read-Only: 打开此文件成为只读档可以用在只是想要查阅该文件内容并不想要进行编辑行为时。 (E)dit anyway: 还是用正常的方式打开你要编辑的那个文件并不会载入暂存盘的内容。不过很容易出现两个使用者互相改变对方的文件等问题!不好不好! ®ecover: 就是加载暂存盘的内容用在你要救回之前未储存的工作。不过当你救回来并且储存离开vim后还是要手动自行删除那个暂存档喔! (D)elete it: 你确定那个暂存档是无用的!那么开启文件前会先将这个暂存盘删除!这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的所以就删除掉他吧!哈哈! (Q)uit: 按下q就离开 vim 不会进行任何动作回到命令提示字符。 (A)bort: 忽略这个编辑行为感觉上与quit非常类似!也会送你回到命令提示字符就是啰!
Vim 的额外功能
使用 vi 时其实就是在使用 vim 区块选择
按键说明v字符选择会将光标经过的地方反白选择V列选择会将光标经过的列反白选择[Ctrl ]v区块选择可以用长方形的方式选择资料y将反白的地方复制起来d将反白的地方删除掉p将刚刚复制的区块在游标所在处贴上
多文件编辑
按键说明:n编辑下一个文件:N编辑上一个文件:files列出目前这个 vim 的开启的所有文件
多窗口功能
按键说明: sp [ filename]开启一个新窗口如果有加 filename表示在新窗口开启一个新文件否则表示两个窗口为同一个文件内容(同步显示)[ctrl ]wj, [ctrl ]w↓按键的按法是:先按下[ctrl]不放再按下 w 后放开所有的按键然后再按下 j (或向下箭头键)则光标可移动到下方的窗口[ctrl ]wk, [ctrl]W↑同上不过光标移动到上面的窗口。[ctrl]w q其实就是:q结束离开。如果我想要结束下方的窗口那么利用[ctrl]W↓ 移动到下方窗口按下 :q 离开也可以按 [ctrl]wq
vim 的挑字补全功能
组合按钮补齐的内容[ctrl]x - [ctrl]n透过目前正在编辑的这个【文件的内容文字】作为关键词予以补齐[ctrl]x -[ctrl]f以当前目录内的【文件名】作为关键词予以补齐[ctrl]x - [ctrl]o以扩展名作为语法补充以 vim内建的关键词予以补齐
vim 环境设定与记录:~/.vimrc,~l.viminfo
vim 会主动的将你曾经做过的行为登录下来记录在 ~/.viminfo 文件中。 整体 vim 的设定值一般是放置在 /etc/vimrc 这个文件不过不建议你修改他。可以修改~/.vimrc这个文件(预设不存在自行手动建立 )将所希望的设定值写入。
vim 常用指令示意图 图来源于http://www.cnblogs.com/kevin2chen/p/6709968.html
Vim 使用注意事项
1.中文编码问题 中文编码有 big5 与 utf8 两种如果文件是使用 big5 编码制作的但在 vim 的终端接口中你使用的是万国码(utf8)编码不同所以中文文件乱码。 这时考虑 1.Linux系统默认支持的语系数据这与/etc/locale.conf有关 2.终端界面(bash)的语系这与 LANG,LC_ALL这几个变数有关 3.文件原本的编码; 4.开启终端机的软件例如在 GNOME底下的窗口接口。
事实上最重要的是上头的第三与第四点只要这两点的编码一致你就能够正确的看到与编辑中文文件。
先修改语系编码
LANGzh_TW.big5
export LC_ALL zh_TW.big5然后在终端接口工具栏的【终端机】–【设定字符编码】–【中文(正体)(BIG5)】项目点选一下如果一切都没有问题了再用vim 去开启那个 big5编码的文件就没有问题了!
2.DOS 与Linux 的断行字符 可以利用cat -A来观察以 DOS (Windows系统)建立的文件的特殊格式也可以发现在 DOS 使用的断行字符为^M$称为CR 与LF 两个符号。而在 Linux 底下则是仅有LF($)这个断行符号。
在 Linux 底下的指令在开始执行时判断依据是【Enter】而 Linux 的 【Enter】 为 LF 符号不过由于DOS 的断行符号是CRLF 也就是多了一个 ^M 的符号出来。
在不同的系统之间复制一些纯文本文件时要使用unix2dos或 dos2unix来转换一下断行格式。
语系编码转换
iconv -f 原本编码 -t 新编码 filename [-o newfile]可以使用 iconv 进行文件语系编码的转换
《鸟哥的Linux私房菜-基础篇》学习笔记