关于vim/vi简单介绍

Vim/Vi 简介

 

Vim/Vi 是一个功能强大的全屏幕文本编辑器,是Linux/Unix上最常用的文本编辑器。作用是:建立、编辑、显示文本文件。(所有Linux和Unix中都会默认安装)

Vim/Vi 用于在使用Linuxserver时,进行脚本编程和配置文件修改时主要使用,比较好用。

Vim/Vi 没有菜单,只有命令。(Vim是Vi的一个增强版)(Vim 下载:www.vim.org)

 

一般使用Vim编写系统配置文件和写shell脚本时,需掌握如下命令:

插入命令:

在光标后附加文本

在本行行末附加文本

i   在光标前插入文本

I   在本行开始插入文本

在光标下方插入一行

在光标上方插入一行

定位命令:

h、方向左键  光标左移一个字符

j、方向下键  光标下移一行

k、方向上键  光标上移一行

l、方向右键  光标右移一个字符   

(向上、下移动n行可以用njnkn方向上键、n方向下键;向左向右移动n个字符可以用nhnln方向左键、n方向右键)

$  、End键                     移至行尾

0 (零键)、Home键   移至行首

H                         移至屏幕上端

M                        移至屏幕中央

L                          移至屏幕下端

 

:set nu   显示行号

:set nonu 取消行号

gg                     到第一行

G                到最后一行

nG、:n      到第n行

删除命令:

x                 删除光标所在处字符

nx              删除连同光标所在位置及光标后的共n个字符

dd              删除光标所在行内容,ndd删除连同光标所在的行及光标下面共n行内容

dG             删除光标所在行到末尾的所有内容

D                删除光标所在处到行尾的内容

:n1,n2d 删除指定范围的行

复制和剪切命令:

yy、Y        复制当前行

nyy、nY   复制包括当前行在内的以下共n行

dd              剪切当前行

ndd       剪切包括当前行在内的以下共n行

p、P      粘贴在当前光标所在行下、行上

注意:使用删除命令所删除的内容均可用pP来进行粘贴,但是粘贴位置有所不同。其中,Dxnx命令删除的内容在粘贴时,p粘贴在光标后,P粘贴在光标前;而ddndddG:n1,n2d命令删除的内容在粘贴时,p粘贴在光标所在行的下一行,P粘贴在光标所在行的上一行。

替换和取消命令:

r                 替换光标所在处字符

R                从光标所在处开始替换字符,按ESC结束

u                取消上一步操作

搜索和替换命令:

/string                  向前搜索指定字符串(搜索时想忽略大小写:set ic关闭忽略大小写:set noic)

n                             上搜索指定字符串的下一个出现位置(N 上一个出现位置)

:%s/old/new/g          全文替换指定字符串

:n1,n2s/old/new/g   在一定范围内替换指定字符串(可用c代替g,区别就是c会提示是否替换

保存退出命令:

:wq 、ZZ  保存并退出

:wq!            强行保存退出(只有文件的所有者或者root才可以这样

:q!                          强行不保存退出(只有文件的所有者或者root才可以这样

:w                         保存不退出

:w 新文件名 另存为功能(:w 目录/新文件名  另存在指定目录下)

块选择命令:

v                 字符选择,会将光标经过的地方反白选择

V                行选择,会将光标经过的行反白选择

Ctrl+v     块选择,可以用长方形的方式反白选择数据

y                将反白的地方复制起来

d               将反白的地方删除

其它技巧命令:

:r 文件名                                 导入某文件内容导入到当前文件中

:!命令                                      在Vi中执行命令(按回车退出)

:r!命令                                     导入命令的执行结果到当前文件中

:map 快捷键  触发命令    定义快捷键

              范例  :map ^P I#^[ (^P ctrl+v ctrl+p ctrl+v+p  ^[ ctrl+v+ESC)光标移到行首插入#后退出(启用ESC键)到命令模式

                       :map ^B 0x    光标移到行首删除行首字母

                        :map ^E ithis is a test!  定义ctrl+e插入i后面的内容(注意:并没有退回到命令模式

:unmap 快捷键              取消快捷键定义

:n1,n2s/^/#/g                  连续行注释(^表示行首)

:n1,n2s/^#//g                   连续行取消注释(^表示行首)

:n1,n2s/#//g                     去掉连续行内所有井号

:n1,n2s/^/\/\//g                连续行用//注释(^表示行首,使用了转义符)

:ab 内容1      内容2          替换(将输入的内容1变成内容2)

:unab 内容1                      取消替换

 

关于Vim配置:

宿主目录 (homedirectory   宿主目录可以指定,但默认root的宿主目录是/root 普通用户的宿主目录是/home/用户名)

         Vi 的配置文件存放在用户的宿主目录下 ~/.vimrc

用户只有将定义的快捷键等对vi的配置写在配置文件中,才能每次都使用,否则,每次对vi的设置是不保存的。

Vim与vi比较:

Vim与vi相比,vim具有颜色显示的功能,且支持许多程序语法(C语言等),可以进行C语言等程序编辑。当使用vim编辑程序时,vim可直接检查程序的语法错误。

另外,vim可以进行多文件编辑

vim file1 file2

:files        列出当前使用vim打开的文件

:n               编辑下一个文件

:N              编辑上一个文件

Vim的多文件编辑可以实现将一个文件中的某些内容复制、剪切到另一个文件中。

Vim还可以进行多窗口编辑

         在一般的窗口界面下的编辑软件都会有“切割窗口或冻结窗口”的功能,vim也有这样的功能。

:sp          将当前文件在两个窗口里显示

:sp filename1 在当前窗口里切割出一个窗口显示filename1文件

Ctrl+w+j、Ctrl+w+方向上键      

Ctrl+w+k、Ctrl+w+方向下键          在各个窗口之间切换光标

 

Vim会主动将你曾经做过的行为记录下来,记录操作的文件是~/.viminfo

(.viminfo是自动产生的,用户在vim里所做的操作可以在这个文件内部查询到)

DOS 与Linux断行字符的转换:

dos2UNIX [-kn] file [newfile]    -k(不更新文件上次内容经过修订的时间)

UNIX 2dos [-kn] file [newfile]    -n(保留原本的旧文件,转换后并保存到新文件)

在DOS和Linux的文本编辑模式和下,断行字符是不同的。DOS中使用的断行字符是^M$(我们成为CR LF两个符号),Linux中仅有$(LF)这个断行符号。

文件语系编码的转换:

iconv --list    列出iconv支持的语系数据

iconv –f 原本编码 –t 新编码 filename[-o newfile]

        -f from

     -t to

           -o file 若要保留原来的文件,使用该选项可建立新编码文件

 

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值