linux备忘录-vi和vim
知识点
vi的三种模式
一般模式
按 ESC 可回到一般模式
相关按键
j 代表 向下按钮
k 代表 向上按钮
h 代表 向左按钮
l 代表 向右按钮
20j 等代表 向下移动20行
Ctrl + f 代表 Page down
Ctrl + b 代表 Page up
Ctrl + d 代表 向后翻半页
Ctrl + u 代表 向前翻半页
n[space] -> 向右移动n个字符
0或者[home] -> 移动该行的最前的一个字符
$或者[end] -> 移动到该行的最后一个字符
H -> 移动到屏幕最上方第一行的第一个字符
M -> 移动到屏幕中间行第一个字符
L -> 移动到屏幕最下方一行的第一个字符
G -> 移动到档案的最后一行
nG -> 移动到第n行
n[ENTER] -> 光标向下移动n行
/word -> 向上搜索word
?word -> 向下搜索word
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 -> 向后删除一个字符,相当于del
X -> 向前删除一个字符,相当于backspace
dd -> 删除游标所在行
ndd -> 连续删除n行
d0和d$ -> 删除光标到该行的最前、或最后的字符
d1G -> 删除光标前面的所有内容
dG -> 删除光标后面的所有内容
yy -> 复制光标所在那一行
yy -> 复制光标向下n行
y1G、yG、y0、y$ -> 类似于d
p -> 下一行开始粘贴
P -> 在上一行粘贴内容
u -> 复原前一个动作
Ctrl + r -> 重做前一个动作
. -> 重复前一个动作
区块选择
v -> 光标经过的字符反白选择
V -> 光标经过的行反白选择
Ctrl + v -> 长方形的方式选择
y -> 复制反白的地方
d -> 删除反白的地方
编辑模式
在一般模式下,按下 i o或a等字符进入编辑模式
按不同的字符有不同的效果
i -> 在光标所在处插入
I -> 在该行第一个非空字符插入
o -> 在光标所在下一行插入新行
O -> 在光标所在上一行插入新行
r或R -> 进入取代模式,r取代一次,R一直取代
指令模式
在一般模式下按下 : / 或 ?三个中的任何一个按钮,就能进入命令模式
命令
在命令模式下的命令
- :wq (存储后退出)
- :w (保存)
- :q! (强行退出,不保存)
- :wq! (强行写入,并退出)
- :w filename (另存为filename档案)
- :r filename (在光标所在读入filename档案数据)
- :n1,n2 w filename (将n1到n2行另存为filename档案)
- :! command (执行shell脚本)
- :set nu (显示行号)
- :set nonu (取消行号)
- :n (编辑下一个档案)
- :N (编辑上一个档案)
- :files (列出vim开启的所有档案)
:sp filename (窗口分割)
Ctrl + w + j -> 移动到下一个窗口
Ctrl + w + k -> 移动到上一个窗口
Ctrl + w + q -> 退出该窗口- :vs (窗口左右切割)
e! 恢复成档案原本的内容
vim 环境设定 ~/.vimrc ~/.viminfo
:set hlsearch (设定高亮搜寻)
:set nohlsearch (取消高亮搜寻)
:set autoindent (设定自动缩排)
:set noautoindent (取消自动缩排)
:set backup (设定自动备份)
:set nobackup (取消自动备份)
:set ruler (显示右下角的状态信息)
:set noruler (取消右下角的状态信息)
:set showmode (显示左下角的状态信息)
:set noshowmode (取消左下角的状态信息)
:set backspace=(012) (设定backspace)
0或1,仅可删除刚输入的字符
2,可以删除任意字符
:set all (显示目前所有的环境参数设定)
:set (显示与系统默认值不同的参数设定)
:syntax on (语法高亮)
:syntax off (取消语法高亮)
:set bg=dark
:set bg=light
配置文件
总的配置文件 /etc/vimrc ,建议修改个人配置文件 ~/.vimrc,例如
~/.vimrc
set hlsearch "高亮搜寻,这是注释"
set nu "显示行号"
set autoindent
set backspace=2
set ruler
set showmode
set bg=dark
syntax on
其他知识
按 Ctrl + z 将程序丢到背景去执行
vim 编码问题需要考虑
- linux系统默认支持的语系,与 /etc/sysconfig/i18n 有关
- 终端bash语系,与环境变量 LANG 有关
- 档案原本的编码
- 开启终端机的软件的编码,如窗口接口
一般需要保证第3点和第4点的编码保证一致。
DOS 使用的断行字符 ^M$ CRLF 回车换行
linux 使用的断行字符 $ LF 换行
DOS 与 linux 间的格式转换
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k 不修改 mtime
-n 保持旧档,输出到新档
dos2unix -k -n oldfile newfile
档案的编码装换
iconv --list 列出iconv支持的语系
iconv -f 原本编码 -t 新编码 filename [-o newfile]
iconv -f big5 -t utf8 file.big5 -o file.utf8
big5 为 ISO-8859
参考
鸟哥的Linux私房菜 第三版
linux备忘录-vi和vim的更多相关文章
- Linux系统配置VI或VIM的技巧
Linux系统配置VI或VIM的技巧作者:IT专家网论坛出处:IT专家网论坛2008-10-28 11:08配置VI和VIM的颜色显示,使它能够高亮度显示一些特别的单词,这对编写程序很有用⋯⋯ 1.V ...
- Kali Linux的vi编辑器/vim编辑器使用方法
转载声明:本文为转载文章 原文地址:https://www.52host.cn/blog/kali-linux-vi-editor/ Kali Linux系统的vi编辑器/vim编辑器的使用和Cent ...
- linux下vi或vim操作Found a swap file by the name的原因及解决方法
在linux下用vi或vim打开Test.java文件时 [root@localhost tmp]# vi Test.java出现了如下信息: E325: ATTENTION Found a s ...
- linux的vi和vim编辑器操作
vi:linux内部的文本编辑器:vim:vi的增强版,具有程序编辑的能力. vi和vim的三种常见模式: (1)正常模式(一般模式):vim一打开就是这种模式,此模式下可以使用各种快捷键,比如复制粘 ...
- linux中vi和vim操作
一.简单介绍 vi 和 vim 类似于windows的文本编辑器 所有的Linux系统都会内置vi文本编辑器 vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能 ...
- linux 下vi与vim区别以及vim的使用
vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...
- Linux之vi和vim编辑器
目录 1. vi和vim简介 2. vi 和 vim 的三种常见模式 2.1 正常模式 2.2 插入模式 2.3 命令行模式 3. 三种模式间的切换 4. 常用快捷键案例 5. 常用命令 1. vi和 ...
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
- 【Linux】vi(vim)起步学起来有些困难,一步一步温习
以Tomcat的配置文件service.xml为例,记录.学习vi的最常用操作. > 什么是vi or vim? [nicchagil@localhost bak]$ man vi VIM() ...
随机推荐
- P1024 一元三次方程求解
P1024 一元三次方程求解 #include<cstdio> #include<iostream> #include<algorithm> using names ...
- JS-输入数字输出大写中文
function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', ...
- 微信 php 获取token 第二次失败解决办法
第一次成功了,第二次总是失败,很简单,session问题 clearstatcache(); $_SESSION = ''; $_COOKIE = ''; //获得参数 signature nonce ...
- Q&A - Apache、Nginx与Tomcat的区别?
一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上.其属于应用服务器.Apache支持支持模块多,性能稳定,A ...
- Java OOP——第五章 异常
1. 尝试通过if-else来解决异常问题: Eg: public class Test2 { public static void main(String[] args) { ...
- (二)活用ComponentScan
项目改造成spring cloud项目后,有非常多组件是复用的,比如(一)敏感信息混淆的组件,比如数据库.Redis等配置, 比如常用的api组件Swagger配置.每个微服务组件里都会有若干个组件随 ...
- ZOJ3640 概率DP
Background If thou doest well, shalt thou not be accepted? and if thou doest not well, sin lieth at ...
- 宁夏邀请赛F FLOYD
Moving On Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn.Each ci ...
- opencv中对图像的像素操作
1.对灰度图像的像素操作: #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using ...
- python基础之流程控制、数字和字符串处理
流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...