这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系列文章里有些基础概念可能不会涉及到或者不会多做解释.一个是因为有些基础概念我目前也解释不清楚.越基础的解释起来越需要能力,目前鄙人还不具备.另一个是因为我相信各位大神们,你们已经有很好的搜索功能.当然有问题也欢迎大家互相讨论和学习. 这篇主要讲的是我当前对vim学习的理解.后面的一系列文章会针对于学…
上一章一直在讲的是vim的文本的操作,本章主要讲的是vim的文件操作. 本章的有些概念和传统的文本编辑器也不尽相同.所以需要注意概念或者切切说是思维习惯的区别. vim 允许在一个编辑会话中编辑多个文件,我们既可以每次显示一个文件,也可以把工作区分成若干个分割窗口或标签页,每个窗口或标签页包含一个独立的缓冲区. 概念 在开始学习之前,有必要先弄清楚几个重要的概念:文件.缓冲区.窗口.标签页.以及,他们之间的关系是什么 文件 这里的文件,指的是存储在磁盘上的文件.在工作过程中,我们通常会说“我们正…
不管学什么技术,我都深信概念是最重要的.是影响整个学习轨迹,决定能在这个技术领域高度. 当然如果你现在的目的不是在学习而在于解决问题(很多人不愿意承认,或者没发现),那概念就暂时没那么重要了. 目的 弄清楚这些概念,有助于记忆,举一反三.重复的东西只学一次!! 用键盘不用鼠标 第一关是理解vim的设计思路,vim设计之初就是整个文本编辑都用键盘而非鼠标来完成,键盘上几乎每个键都有固定的用法. 具体有两个要注意的建议: 学会盲打 如果你要低头看着键盘打字,或者键位不熟悉,或者指法不舒服,那学习Vi…
菜鸟vimer成长记——第0章.我眼中的vim学习 菜鸟vimer成长记——第1章.统一概念 菜鸟vimer成长记——第2.0章.模式初探 菜鸟vimer成长记——第2.1章.normal模式 菜鸟vimer成长记——第2.2章.visual模式 菜鸟vimer成长记——第2.3章.insert模式 菜鸟vimer成长记——第2.4章.cmd-line模式 菜鸟vimer成长记——第3章.文件 菜鸟vimer成长记——第4.0章.Vim插件管理利器-Vundle 菜鸟vimer成长记——第4.1…
首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式下相同的键位可能产生的结果不一样.好多快捷怎么记忆?记忆后过段时间不使用又还给vim了.这个是因为没有弄清楚职责和使用场景,没有构建成套的vim知识体系.而我们这里通过模式为载体来构建vim知识体系. 目的 介绍vim的常用模式职责及模式切换,减少由于不断思考和纠正什么场景用什么模式的什么操作而引起…
定义 Vundle是vim bunler和简称,它是一个vim插件管理器. Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便.gmarik受到Ruby的bunler的启发,开发了vundle这个vim插件,可以将插件分到不同的目录管理. Vundle基于Git架构,每一个插件都是一个项目的Repository,通过Vundle可以用简单的指令,管理插件的生命周期.这样,只要有一份.vimrc,到哪都可以使用原有的vim插件了.当然基本前提是:系统已经要有git. 安装 具体…
cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和Search patterns.Filter 命令暂时用的场景比较少,如果有更适合的场景再补充. 目的 掌握cmd-line模式下常用操作的语法和概念 Ex 命令简介 初时,先有ed,ed为ex之父,ex为vi之父,而vi为vim之父.可见Ex 命令的重要性. 在Ex 命令影响范围广且距离远.对比no…
目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个操作符+一个动作命令. normal.visual.cmd-line都具有操作文本的基本功能. normal 操作符+动作命令. visual  动作命令+操作符. cmd-line   匹配范围+操作符. 这三个在文本的基础操作时实现的功能是一样的.主要围绕着normal来讲,其他的举一反三即可.…
简介 关于插件的分类,此系列只会简单的区分为通用插件和编程插件.通用插件的意思是,不基于任何编程语言都可以使用的插件.编程插件,是针对于编程习惯,或者说是针对于某种语言的插件. 计划中,是先把基本常用的插件先整理出来.后期如果有遇到更适合的插件也会添加进来. 下面的插件,如果没有特别说明都是基于Vundle管理的.这些插件都可以在github上搜到,一般是最受欢迎的那个,所以就不一一说明了. 有些插件的快捷键设置会统一在最后的配置文件体现,就不一一描述. 开始界面 vim-startify vi…
大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概念 光标移动 移动光标的位置,这些操作和其他的编辑器基本一致.列几个常用的,其他的不一一列举. 常用语法: 操作 用途 Ctrl+Left 向后移动一个单词 Ctrl+Right 向前移动一个单词 Home 移动到行首 End 移动到行尾 Ctrl+Home 移动到文件第一行 Ctrl+End 移动…
vi是没有可视模式的.然而大多数编辑软件都都是有可视模式.所以我猜测vim是几乎迫于无奈才有了visual模式. 个人建议,能不用就不用.这样能直接在头脑里处理好文本,锻炼文本处理能力,同时能转变过来思维习惯. 目的 掌握visual的基本操作步骤 记住visual独有的用法 使用步骤 visual的操作可以分为三个步骤.可以对比normal的二个步骤:操作符+动作命令. 激活可视模式.一个是因为绝大时间都在normal模式下,需要切换.第二个是因为visual有三种情况. 移动文本末端.通过移…
简介 这部分的插件是与编程相关的插件.主要涉及两大块:所有编程语言通用的插件,以及各个语言独有的插件.插件的数量和合理性,这可能是一个不断累积和修正的过程. 个人感觉,现在比较适合sh,html,markdown的编程.对于java,还是有点勉强.至于其他的,比如python等,现在还没有涉略.还会继续边使用,边调整. 其实只要是编程的IDE都会涉及到一些统一的概念:快速查找文件,快速查找文本引用,高亮,语法错误提示,自动提示,快速输入,消除重复操作,项目的管理等.我个人目前的感觉是,vim在项…
是什么 基于MVVM模型,核心库只关注视图层,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件的js框架.根据项目的复杂度和需求,渐进的加入插件以达到恰到好处的程度. 解决问题 UI组件化 数据绑定 路由(通过插件扩展) 状态管理(通过插件扩展) 适用人群 IE9+的浏览器的人群. 为什么选它 活跃度 5星 社区活跃:gitlab上 6W+的关注.意味着,产品会越改越好. 招聘活跃:对前端的简历基本上vue可以说是必出的内容.意味着,这个技术是被市场认可的并且在被商用. 易用性 5星…
原文:Android菜鸟的成长笔记(6)--剖析源码学自定义主题Theme 还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上面的标题myFirstApp,怎么去掉这个标题呢?",当时我直接在AndroidMainfest.xml中添加了一个属性: android:theme="@android:style/Theme.NoTitleBar" 可能有的朋友就会迷惑了,为什么添加了这个属性就可以了.这一篇…
上一篇文章我们介绍了信息收集方法和WMIC,今天我们将跟随作者深入学习Windows提权基本原理的内容,希望通过这两篇文章的讲解,大家能够真正掌握这个技能. 推荐阅读:「白帽黑客成长记」Windows提权基本原理(上) 注:文章篇幅较长,阅读用时约10分钟. 在t5-t6阶段,快速攻陷 在继续渗透之前,你需要先回顾一下已经搜集到的信息,信息量应该已经不小了.我们计划的下一步就是要寻找一些能被轻易利用的系统缺陷来提升权限. 显而易见,第一步就是去查看补丁修正情况.如果发现主机已经被打了某些补丁,也…
「白帽黑客成长记」Windows提权基本原理(下) https://www.cnblogs.com/ichunqiu/p/10968674.html 提权.. 之前还在想 为什么 我的 sqlserver 运行在 network service 上面 还能被创建新用户. 上一篇文章我们介绍了信息收集方法和WMIC,今天我们将跟随作者深入学习Windows提权基本原理的内容,希望通过这两篇文章的讲解,大家能够真正掌握这个技能. 推荐阅读:「白帽黑客成长记」Windows提权基本原理(上) 注:文章…
5.4.3 工资程序成长记:函数 自从上次小陈“程序员”的工资程序得到老板的夸奖,口头许诺给他涨工资以后,老板再也没有找过他,涨工资的事自然也就没有下文了.这天,老板又突然召他去办公室.这下可把小陈高兴坏了,心想盼星星盼月亮终于盼来涨工资这一天了.于是赶紧到了老板的办公室.可他刚进门就发现情况有点不对,只见老板阴沉着脸坐在他那张硕大的老板椅上,满头大汗,手指还在不停地敲击着键盘输入着什么.一见到小陈进来,就好像见到仇人似的,劈头盖脸地来了一句: “小陈啊,你这个工资程序怎么搞的,怎么每次都要重新…
4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述,还是逐层递进论述.定好结构后再按照结构的要求将词语和句子安排到合适的位置,这样才能写出一篇有意义的词句通顺的文章.编写程序就像写文章一样,也同样需要先根据需要处理的事务确定程序的流程控制结构,然后再将那些零散的语句串联起来描述一个完整的处理事务的过程,从而将多条零散的语句组织成可以完成一定功能的完整…
原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话来了,当接完电话游戏继续玩),某些应用甚至会保留你离开时候的状态及数据,这些原理是什么?怎么去实现这样的应用?这将是我们这一篇文章要解开的问题. 有一句很常见的代码如下,很多人不知道为什么要加这么一句话 @Override protected void onCreate(Bundle savedIn…
原文:[置顶] Android菜鸟的成长笔记(13)——异步任务(Async Task) Android的UI线程主要负责处理用户的事件及图形显示,因此主线程UI不能阻塞,否则会弹出一个ANR(Application Not Responding)异常,所以不能在UI线程中执行耗时操作.AsyncTask<>是一个抽象类,通常被继承,继承时需要指定三个泛型: AsyncTask<Params, Progress, Result> Params:启动任务执行的输入参数的类型 Prog…
原文:[置顶] Android菜鸟的成长笔记(12)——Handler.Loop.MessageQueue 当一个程序第一次启动时,Android会启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如按键事件.触屏事件.绘图事件,主线程也被称为UI线程. UI的操作只能是通过主线程来操作,为了解决多线程操作UI的问题,就用到了Handler类. 一.Handler类 Handler类的作用有两个: 1.在新启动的线程中发送消息. 2.在主线程中获取.处理消息. 例如:…
原文:[置顶] Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值 前面我们了解了如何启动一个Activity,一个Activity在启动另外一个Activity的时候可能会遇到需要传值的需要.Activity之间传值是通过Bundle来实现的. 一.通过Bundle传值介绍 Intent提供了多个重载方法来携带数据 putExtras(Bundle data):向Intent中放入需要的数据包 Bundle getExtras():取出Intent所携带的数据…
原文:[置顶] Android菜鸟的成长笔记(8)——Intent与Intent Filter(上) Intent代表了Android应用的启动“意图”,Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,取决于Intent的各个属性. 一.显式的Intent 明确指定了要启动的组件的Intent我们称为显式的Intent 例如: package com.example.testintent; import android.app.Activity; import and…
原文:Android菜鸟的成长笔记(17)-- 再看Android中的Unbounded Service 前面已经写过关于startService(Unbounded Service)的一篇文章:<Android菜鸟的成长笔记(16)--Service简介>本篇将在这一篇的基础上再来看一下startService的用法.先看一段代码: TestService.java package com.example.myfirstapp; import android.app.Service; imp…
原创作品.出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47720043 [简单介绍] 个人在oracle路上的成长记录,当中以蓝自喻.分享成长中的情感.眼界与技术的变化与成长.敏感信息均以其他形式去掉,不会泄露不论什么企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已.…
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/40124247 [简单介绍] 个人在oracle路上的成长记录,当中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以英文形式取代,不会泄露不论什么企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已.…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/details/102677688 [摘要] 什么是NB-IoT?NB-IoT有什么优势?NB-IoT能做什么?本文将会从NB-IoT技术的发展历程,技术特点,通信协议,应用场景等方面为您全方面解读NB-IoT技术,了解NB-IoT的独特魅力. 相信很多接触过物联网的人都听过NB-IoT的名字,但NB-IoT…
「白帽黑客成长记」Windows提权基本原理(上) https://www.cnblogs.com/ichunqiu/p/10949592.html 我们通常认为配置得当的Windows是安全的,事实真的是这样吗?今天让我们跟随本文作者一起深入了解Windows操作系统的黑暗角落,看看是否能得到SYSTEM权限. 作者将使用不同版本的Windows来强调任何可能存在的命令行差异,请牢记因为不同的操作系统和版本差异会在命令行中显现,作者试图构造本教程,以便它适用于Windows提权的最普遍的方式.…
大数据全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack (需fanqiang).他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后全栈这个词便流行起来,我看到过的就有大数据全栈工程师,大数据全栈设计师,大数据全栈运维,大数据全栈市场营销人员等等.我自己是名大数据程序员, 阿里巴巴年薪800k大数据全栈工程师成长记 需要的技能 全栈工程师的价值 随着时间的推移,全栈工程师的作用和价值在越来越多的产品或项目中得到了印证.那么,我们…
Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a computer among multiple programs and to provide a more useful set of services than the hardware alone supports. The operating system manages and abstracts t…