vi/vim的使用-鸟哥的Linux私房菜基础版本(第二版)笔记7 | 梦回起点—试着去表达
ڼС
梦回起点—试着去表达
只为不让自己变成我讨厌的人
本站基于WordPress—主题by 设计窝
冀ICP备15003737号
梦回起点
Copyright © 2015-2018 All rights reserved.

vi/vim的使用-鸟哥的Linux私房菜基础版本(第二版)笔记7

这一部分为大家推荐一本书《学习Vi编辑器(第六版)》  去网上下电子版吧,绝版了。

vi 的使用
     vi一般分为三种模式 一般模式 编辑模式 命令行命令模式
     一般模式:
         vi处理文件时,一进入该文件就是一般模式,可以在该模式下移动光标,删除字符,删除整行,复制粘贴等
     编辑模式:
         按下i,I,o,O,a,A,r,R等字幕之后才会进入编辑模式 按下Esc 返回一般模式
     命令行命令模式:
         一般模式中 输入’:’,’?’,’/’时可以将光标移动到最下面一行,在这个模式中,可以搜索,读取,存盘,
         大量删除字符,离开,显示行号等
     进入vi 如果是新文件会提示[new file] 如果是已存在文件会显示 文件名 行数 字符数
     技巧:如果文件没有写权限,并且用户可以改变文件的权限,那么可以通过:wq!强制写入
命令行内容说明
一般模式移动光标:
     h或← 左
     j或↓ 下
     k或↑ 上
     l或→ 右
     ctrl+f 向下滚动一页
     ctrl+b 向上滚动一页
     ctrl+d 向下滚动半页
     ctrl+u 向上滚动半页
     + 光标移动到非空格符的下一行
     – 光标移动到非空格符的上一行
     n<space> n为数字光标向右移动n个字符
     0 移动到这一行走前面
     $ 移动到这一行最后面
     H 移动到这个屏幕的最上方那一行
     M 移动到这个屏幕最中间那一行
     L 移动到这个屏幕最下方那一行
     G 移动到这个文件最后一行
     nG n为数字 移动到这个文件的第n行
     gg 移动到这个文件的第一行 相当于1G
     n<enter> 光标向下移动n行
一般模式搜索与替换:
     /word 从光标位置开始向下查找word
     ?word 从光标位置开始向上查找word
     n n是英文字母。 表示重复前一个搜索动作。即查找下一个
     N 向上查找上一个
     :n1,n2s/word1/word2/g 将n1到n2行所有的word1替换为word2
     :1,$s/word1/word2/g 中第一行到最后一行查找word1替换为word2
     :1,$s/word1/word2/gc 中第一行到最后一行查找word1替换为word2,并且
                             替换前询问用户是否替换
一般模式删除,复制与粘贴:
     x,X 在一行字中,x为向后删除一个字符,X为向前删除一个字符
     nx n为数字,连续向后删除n个字符
     dd 删除光标那一整行
     ndd n为数字,删除n行
     d1G 删除光标所在位置到第一行的所有数据
     dG 删除光标所在位置到最后一行所有数据
     d$ 删除光标所在位置到该行最后一个字符的所有数据
     d0 删除光标所在位置到该行第一个字符的所有数据
     yy 复制这一行
     nyy 复制n行
     y1G 复制光标所在行到第一行的所有数据
     yG 复制光标所在行到最后一行的所有数据
     y0 复制光标所在的那个字符到该行行首的所有数据
     y$ 复制光标所在的那个字符到该行行尾的所有数据
     p,P 粘贴,p为粘贴在当前行的下面,P为粘贴在当前行的上面
     J 将光标所在行与下一行的数据结合成同一行
     c 重复删除多个数据 例如向下删除10行 [10cj]
     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 存储离开
     :e! 将文件还原到初始状态
     :ZZ 如果文件没有修改则离开,如果修改了则存储离开
     :w [filename] 另存为
     :r [filename] 在光标所在行后面读入另一个文件
     :n1,n2 w [filename] 将n1到n2行的内容存储到filename文件中
     :!command 暂时离开vi到命令行下执行command的显示结果
     :set nu 设置显示行号
     :set nonu 不显示行号

vim的附加功能
     命令行下输入:alias 如果出现vi=’vim’说明vi已经被vim替换
     vim右下角的Top表示当前页面在文件的最上面
     1,2 表示第一行第二个字符
块选择功能(很有用的功能哦):
     块选择按键意义:
     按键                意义
     v         字符选择,会将光标经过的地方反白选择
     V         行选择,会将光标经过的行反白选择
     ctrl+v    块选择,可以用长方形的方式选择数据
     y         复制反白的地方
     d          将反白的地方删掉
多文件编辑
     :e filename 打开一个新文件
     :open filename 打开一个新文件
     :n 编辑下一个文件
     :N 编辑上一个文件
     :files 列出当前vim打开的文件
     :file 列出当前编辑的文件信息
     :bn   跳转到下一个buffer
     :bp   跳转到上一个buffer
     :bd 关闭一个文件
同时显示多个文件:
     :split
     :vsplit 开启多窗口
     :close 关闭一个窗口
多窗口功能
     :tabc 关闭当前窗口
     :tabo 关闭所有窗口
     :sp [filename] 打开另一个文件
     :ctrl+wj 移动到下面的窗口
     :ctrl+wk 移动到上面的窗口
     :ctrl+wq 结束这个窗口
vim环境设置
     vim记录动作的文件:~/.viminfo
     vim设置值放在文件/etc/vimrc(不建议修改)
         或者建立~/.vimrc(默认不存在)
     常用设置
     :set nu/nonu  是否显示行号
     :set hlsearch/nohlsearch 是否高亮搜索结果
     :set autoindent/noautoindent 是否自动缩进
     :set backup/nobackup 是否自动存储备份文件
     :set ruler/noruler 设置是否在右下角显示状态行说明
     :set backspace=(012) 退格键功能 2可以删除任意值,0或1尽可删除刚刚
                             输入的功能,无法删除文件原来的功能
     :set all 显示当前所有的环境参数设置值
     :syntax(off|no) 是否根据程序相关语法显示不同的颜色 用法如:syntax on
    
DOS与Linux的换行符
     dos2unix [-kn] file [newfile]
     unix2dos [-kn] file [newfile]
     参数:
         -k 保留该文件原来的mtime时间格式
         -n 保留原来的旧文件,转换后的内容输出到新文件

2015-12-24
vi/vim的使用-鸟哥的Linux私房菜基础版本(第二版)笔记7已关闭评论