Linxu 10 - vim 程序编辑器

vim 程序编辑器
vi与vim
在linux中用文本编辑器编辑你的linux参数配置文件时一件重要的事情,绝大多数的文件都在我们这里生成,你可以在这里看到

文件,
为什么要学习vi编辑器:
所有的UNIX Like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在
很多软件的编辑接口都会主动调用vi,(例如后面会谈到的crontab,visudo,edquota等命令)
vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
编辑简单,编辑速度相当快速。
vim是一个程序编辑器
vim是一个程序开发工具,而不是一个文字处理软件
1
vi的使用
vi有三种模式:一般模式,命令行模式,编辑模式

一般模式:以vi打开一个文件后,就进入一般模式了,可以使用上下左右按键移动光标,可以删除字符或删除整行等
编辑模式:按下“i,I,o,O,a,A,r,R”等任何一个字母才会进入编辑模式,在通常linux中,按下这些按键后,界面的左下方会出

现INSERT或REPLACE的字样,此时才可以进行编辑

命令行模式:在一般模式中,输入“:/?”三个中的任意一个字符,就可以将光标移动到最下面的一行,在这个模式当中,可以提

供你查找数据的操作,读取,保存,大量替换字符,离开vi 显示行号等操作都是在这个模式下完成的。

2
简单执行范例:
vim filename 进入文件编辑状态
上面是文件的编辑内容
最后一行是状态显示行,或者是命令执行行
譬如: “good” 50L,181C              50,1
分别代表文件名为good 共50行,181个字符,当前光标停留在第50行第一个字符处。

3
进入编辑模式,按下i,o,a都可以进入,进入后,  发现左下角会出现--INSERT--
按下esc键,回到一般模式
:wq 保存后退出
强制写入命令 :wq! 前提是你的权限可以改变的情况下。
一般模式可以与命令行模式和编辑模式切换,但是命令行模式和编辑模式不能切换
4
按键说明:
移动光标:
ctrl+f 屏幕向下移动一页
ctrl+b 屏幕向上移动一页
H 光标移动到这个屏幕的最上方哪一行的第一个字符
M 光标移动到这个屏幕的中央
L 光标移动到这个屏幕的最下方一行。

G   移动到这个文件的最后一行(常用)
nG  移动到这个文件的第n行  ,例如 20G移动到文件的第20行
gg  移动到这个文件的第一行,相当于1G
n[enter] 光标向下移动N行

查找和替换:
/word 向下查找名称为word的字符串
?word向上查找名称为word的字符串
n 重复前一个查找,譬如使用了/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,在替换之前显示提示字符

删除,复制,粘贴:
xX 在一行字当中,x为向后删除一个字符,(相当于[del]按键,X 为向前删除一个字符,相当于[Backspace])
nx n为数字,连续向后删除N个字符
dd 删除光标所在的整行
ndd 删除光标所在向下N行,
d1G 删除光标所在到第一行的所有数据
dG  删除光标所在到最后一行的所有数据
d$  删除光标所在处到该行的最后一个字符
d0  删除光标所在处到该行的最前面的一个字符
yy  复制光标所在的哪一行
nyy 复制所在的向下N行
y1G 复制光标所在行到第一行的所有数据
yG  复制光标所在行到最后一行的所有数据
y0  复制光标所在的那个字符到该行行首的到行行尾的所有数据。
y$  复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,P为粘贴在光标上一行

u   复原上一个操作。
ctrl+r 重做上一个操作。

i,I 进入插入模式
r,R 进入替换模式,r只会替换光标所在的哪一个字符一次,R会一直替换。

:w  将编辑的数据写入到硬盘文件
:w! 若文件属性为“只读”时,强制写入该文件,不过,到底能不能写,还是跟你对该文件的权限有关。

:q  离开vi
:q! 强制离开不保存文件
:wq 离开保存文件
ZZ  若文件没有改动,则不保存离开,若文件已经被改动过,则保存后离开
:w[filename]  将编辑的数据保存成另外一个文件
:r[filename]  在编辑的数据中,读入另外一个文件的数据,即将filename这个文件内容加到光标所在行后面
:n1,n2 w[filename]  将n1到n2的数据保存成filename这个文件。
:!command 暂时离开vi到命令行模式下执行command的显示结果,例如::! ls /home 即可在vi当中查看/home 下面以ls输出的文

件信息。
:set nu 设置行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu设置行号,设置之后,会取消行号。

在vi中,数字是很重要的,数字通常代表重复做几次,也有可能代表去到第一个什么什么的意思。

5.
vim的保存文件 恢复,打开时的警告信息
在很多人编辑同一个文件和不正常死机的情况下,会产生后缀为.swp的文件

处理方法:
如果你之前的vim处理操作尚未保存,此时你应该按下R,即使用(R)ecover , 此时,vim会载入.swp的文件内容,让你自己决定要

不要保存,这样就能就回来你之前为保存的工作,不过.swp文件并不会在你结束vim时自动删除,所以在你离开的时候需要自行删

除.swp的文件,这样才能避免每次打开文件都会出现这样的警告。

如果你确定这个暂存文件是没用的,可以按下D删除它

6
块选择(Visual Block)
V 行选择,将光标经过的行反白选择
[ctrl]+v 块选择,可以用长方形的方式选择数据
y将反白的地方复制
d将反白的地方删除
7
vim环境设置与记录: ~/.vimrc    ~/.viminfo
~/.viminfo 主动将你曾经做过的行为记录下来,好让你下次可以轻松作业,这个记录操作的文件就是:~/.viminfo
整体vim的设置值一般是放置在/etc/vimrc这个文件中,不过不建议修改。
你可以修改~/.vimrc这个文件(默认不存在,需要自行创建)
8
中文乱码的问题:
编码问题因素:
1.你的linux系统默认支持的语系数据:这个与/etc/sysconfig/i18n有关
2.你的终端接口(bash)的语系,这个月LANG这个变量有关
3.你的文件原本的编码
4.打开终端机的软件,例如在GNOME下面的窗口界面

设置lang
LANG=zh_CN.big5


9
DOS与Linux的断行字符
dos2UNIX
UNIX2dos

10
语系编码转换
iconv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值