130+vim基本命令

http://wklken.me/posts/2013/08/17/130-essential-vim-commands.html


从八十年代起,vi和vim在程序员中十分流行.5年前,我写了《程序员必须知道的100哥vim命令》,这是重写更新版本,希望你喜欢!

基础

:e filename     在编辑器中打开一个文件
:w              保存文件
:q              退出vim
:q!             退出但不保存
:x              写文件(如果有做修改)并退出
:sav filename   保存为
.               在正常模式中重复执行上一个变更
5.              重复五次

移动

k or Up Arrow   上移一行
j or Down Arrow 下移一行
e               移动到单词末尾
b               移动到单词开头
0               移动到行首
G               移动到文件末尾
gg              移动到文件开头
L               移动到屏幕底
:59             移动到59
20|             移动到第20
%               移动到匹配的括号
[[              到函数头
[{              到块开始位置

剪切,复制和粘贴

y   拷贝选中部分到剪贴板
p   粘贴剪贴板中内容
dd  剪切当前行
yy  拷贝当前行
y$  拷贝到行尾
D   剪切到行尾

搜索

/word           从开头到结尾搜索单词word
?word           从结尾到卡头
*               搜索光标下单词
/\cstring       搜索stringSTRING, 大小写不敏感
/jo[ha]n        搜索john  joan
/\< the         搜索以the开头的,the, theatre  then
/the\>          搜索以the结尾的,the  breathe
/\< the\>       搜索the
/\< ¦.\>        搜索所有含有四个字母的
/\/             搜索fred 但不是alfred  frederick
/fred\|joe      搜索fred  joe
/\<\d\d\d\d\>   搜索仅有四个数字的
/^\n\{3}        搜索连续3个空行的
:bufdo /searchstr/  在所有打开buf中搜索
bufdo %s/something/somethingelse/g  在所有打开buf中搜索并替换

替换

:%s/old/new/g           将所有出现的old替换为new
:%s/onward/forward/gi   将所有onward替换为forward,大小写不敏感
:%s/old/new/gc          替换前确认
:2,35s/old/new/g        将第2行到第35行之间的old替换为new
:5,$s/old/new/g         将第5行到文件结尾的old替换为new
:%s/^/hello/g           在每一行开头加入hello
:%s/$/Harry/g           在每一行结尾加入Harry
:%s/ *$//g              删除每行末尾无用空格
:g/string/d             删除所有包含string的行
:v/string/d             删除所有不包含string的行
:s/Bill/Steve/          替换当前行第一个BillSteve
:s/Bill/Steve/g         替换当前行中所有Bill
:%s/Bill/Steve/g        替换文件中所有Bill
:%s/^M//g               删掉DOS保存文件中(^M)
:%s/\r/\r/g             Transform DOS carriage returns in returns
:%s#<[^>]\+>##g         删除html标签但是保留文本
:%s/^\(.*\)\n\1$/\1/    删除所有连续出现过两次的行,保留一行
Ctrl+a                  递增光标下的数字
Ctrl+x                  递减光标下的数字
ggVGg?                  文本转换为 Rot13

大小写

Vu                  整行小写
VU                  整行大写
g~~                 整行大小写反转
vEU                 单词转为大写
vE~                 单词大小写反转
ggguG               所有文本小写
gggUG               所有文本大写
:set ignorecase     搜索中忽略大小写
:set smartcase      搜索中忽略大小写,除非搜索词中存在大小写字母
:%s/\<./\u&/g       将所有单词首字母大写
:%s/\<./\l&/g       将所有单词首字母小写
:%s/.*/\u&          将每行第一个字母大写
:%s/.*/\l&          将每行第一个字母小写

读写文件

:1,10 w outfile     110行内容写到outfile
:1,10 w >> outfile  110行内容追加到outfile
:r infile           插入文件内容
:23r infile         插入文件23行的内容

文件浏览器

:e .                打开完整文件浏览器
:Sex                切分窗口,打开文件浏览器
:Sex!               同上,垂直切分
:browse e           图像化文件浏览器
:ls                 列出buffers
:cd ..              移到上一层目录
:args               列出文件
:args *.php         打开文件列表
:grep expression *.php  返回包含expressionphp文件列表
gf                  打开光标下文件名对应的文件

和Unix交互

:!pwd               执行pwd命令,返回结果
!!pwd               执行命令并插入结果到文件中
:sh                 临时返回unix
$exit               unix中返回vim

对齐

:%!fmt              所有行对齐
!}fmt               当前位置所有行对齐
5!!fmt              后五行对齐

Tabs和Windows

:tabnew             创建一个新的tab
gt                  展示下一个tab
:tabfirst           展示第一个tab
:tablast            展示最后一个tag
:tabm n(position)   重排tab
:tabdo %s/foo/bar/g 在所有tab中执行一个命令
:tab ball           将所有打开文件放入tab
:new abc.txt        在新window中编辑abc.txt

窗口分屏

:e filename         在当前窗口中编辑文件
:split filename     切分当前窗口并打开文件(缩写 :sp filename)
ctrl-w up arrow     移到上一个文件
ctrl-w ctrl-w       移到下一个窗口
ctrl-w_             当前窗口垂直最大化
ctrl-w|             当前窗口水平最大化
ctrl-w=             所有窗口等大小
10 ctrl-w+          当前窗口增加10
:vsplit file        竖直切分窗口
:sview file         :split, 只读模式
:hide               关闭当前窗口
:­nly               关闭出了当前窗口之外的所有窗口
:b 2                打开2号窗口

自动补全

Ctrl+n Ctrl+p (插入模式)  补全单词
Ctrl+x Ctrl+l           补全行
:set dictionary=dict    定义dictdictionnary
Ctrl+x Ctrl+k           用字典中内容补全

标签

m {a-z}                 在当前位置做标签{a-z}
' {a-z}                 移动到标签位置
''                      移动到上一个位置

缩写

:ab mail mail@provider.org      定义mail 作为 mail@provider.org的缩写

文本缩进

:set autoindent         打开自动缩进
:set smartindent        打开自动智能缩进
:set shiftwidth=4       缩进设为4个空格
ctrl-t, ctrl-d          插入模式中缩进/去缩进
>>                      缩进
<<                      去缩进
=%                      缩进括号中的代码
1GVG=                   缩进整个文件

语法高亮

:syntax on              打开语法高亮
:syntax off             关闭语法高亮
:set syntax=perl        强制语法高亮

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在风能领域,准确预测风速对于风电场的运行与管理至关重要。Matlab作为一个强大的数学计算和数据分析平台,被广泛应用于风速预测模型的构建。本文将深入探讨基于四种风速——随机风、基本风、阵风和渐变风的组合风速预测技术。 我们来理解这四种风速类型: 1. **随机风**:随机风是指风速呈现出随机性的变化,通常由大气湍流引起。在建模中,通常通过统计方法如高斯分布或Weibull分布来模拟这种不确定性。 2. **基本风**:基本风速是指在无特定扰动条件下的平均风速,它是长期观测结果的平均值,通常用于结构设计和风能评估。 3. **阵风**:阵风是短时间内风速显著增强的现象,对建筑物和风力发电机造成的主要威胁之一。阵风的预测涉及到风的脉动特性分析。 4. **渐变风**:渐变风是指风速随时间和空间逐渐变化的过程,常见于风向转变或地形影响下的风场变化。 在Matlab中,利用这四种风速类型进行组合预测,可以提高预测的准确性。预测模型可能包括以下几个步骤: 1. **数据收集与预处理**:收集历史风速数据,包括随机风、基本风、阵风和渐变风的数据,进行异常值检测、缺失值填充以及数据标准化。 2. **特征工程**:提取风速变化的相关特征,如平均值、标准差、极值、频率分布等,这些特征可能对预测有重要影响。 3. **模型选择**:可以选择多种预测模型,如时间序列分析(ARIMA、状态空间模型等)、机器学习算法(线性回归、决策树、支持向量机、神经网络等)或深度学习模型(LSTM、GRU等)。 4. **模型训练**:利用历史数据训练选定的模型,调整模型参数以优化性能,例如通过交叉验证来避免过拟合。 5. **模型验证与评估**:使用独立的测试集验证模型预测效果,常见的评估指标有均方误差(MSE)、平均绝对误差(MAE)和决定系数(R²)。 6. **组合预测**:结合四种风速的不同模型预测结果,可以采用加权平均、集成学习(如bagging、boosting)等方式,以提升整体预测精度。 7. **实时更新与动态调整**:实际应用中,模型需要不断接收新的风速数据并进行在线更新,以适应风场环境的变化。 通过以上步骤,可以构建一个综合考虑各种风速特性的预测系统,这对于风电场的功率输出预测、风电设备的维护计划以及电网调度都具有重要价值。然而,需要注意的是,每个风场的地理环境、气候条件和设备状况都有所不同,因此模型的建立应根据实际情况进行定制和优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值