惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
S
Schneier on Security
T
Tenable Blog
G
GRAHAM CLULEY
Latest news
Latest news
D
Darknet – Hacking Tools, Hacker News & Cyber Security
A
Arctic Wolf
I
Intezer
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
K
Kaspersky official blog
Blog — PlanetScale
Blog — PlanetScale
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
The Cloudflare Blog
Help Net Security
Help Net Security
罗磊的独立博客
博客园 - 聂微东
Jina AI
Jina AI
Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
V
V2EX
人人都是产品经理
人人都是产品经理
美团技术团队
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
J
Java Code Geeks
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
S
Securelist
Forbes - Security
Forbes - Security
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
宝玉的分享
宝玉的分享
C
CERT Recently Published Vulnerability Notes

Posts on WKLKEN THINKING

apisix 中的 lrucache apisix 中的服务发现机制 apisix 中的负载均衡 apisix etcd机制 聊聊框架 关于 k8s 的 zero downtime deployment 一些建议 apisix 遇到的一些问题 关于在除夕前一天换了一个洗衣机的故事 Django DRF 性能优化 DRF 的一些实践 Part1: Serializer DRF继承关系图 Better Code: 关于接口的灵活性 新的仓库: wklken/naming 缓存使用的一些经验 Better Code: 抽象: 可扩展性与可维护性的抉择 Better Code: 异常时, 该提示用户哪些信息? Better Code: 更好的异常日志打印 Go: some libs Go: go-redis/cache升级的坑 Go: logrus性能提升 Go: gin validation 远程办公的一点总结 Go: 开发过程中的一些bug 项目管理实践: 风险驱动开发 Go: 一种error wrap调用链处理方式 漫谈技术选型 Go: 基于 apitest 做handler层单元测试 Go: go-sql-driver interpolateparams参数优化 [分享]深度工作 你需要更多的思考时间 Django项目重构小结 工作七年小结: 学习,生活及其他 [分享]bash日常: bash-utils 极客时间推广海报 2017总结: 予时光以意义 k8s APIServer源码: api注册详细细节 k8s APIServer源码: api注册主体流程 k8s APIServer源码: 服务启动 k8s APIServer源码: go-restful框架 重构 - 读书笔记(Python示例) 写给新人的沟通建议 vim 杂谈 - 关于快速编辑 vim 杂谈 - 关于移动 读书笔记-重构: 章11 处理概括关系 读书笔记-重构: 章10 简化函数调用 读书笔记-重构: 章9 简化表达式 读书笔记-重构: 章8 重新组织数据 读书笔记-重构: 章7 在对象之间搬移特性 读书笔记-重构: 章6 重新组织函数 Python 代码规范小结 [分享]关于vim ElasticSearch集群部署文档 Logstash+ElasticSearch处理mysql慢查询日志 [分享]关于代码调试DE那些事 Logstash+ElasticSearch+Kibana- 实现相对通用的数据收集分析 ELK维护的一些点(二) [分享]Python源码剖析-数据结构 一些Centos Python生产环境的部署命令 摘录<<6个月学会任何一种外语>> ELK 维护的一些点 也许是一个新的开始 一些vim的个性化配置 读书笔记-调试九法 这段时间的一些想法 Python 源码阅读 - 垃圾回收机制 我为什么要写博客 APUE笔记-第一章 UNIX基础知识 Python源码阅读-闭包的实现 Python源码阅读-内存管理机制(二) Python源码阅读-内存管理机制(一) Python-基础-数据结构小结 '活动'设计的一些trick 一些简单的Python测试题 我的tmux配置及说明【k-tmux】 Review and Restart 工作四周年小结 vim插件: surround & repeat[成对符号编辑] vim插件: gundo[时光机] vim插件: expand-region[区域选中] vim插件: quickrun[快速执行] vim插件: trailing-whitespace[行尾空格处理] vim插件: closetag[成对标签补全] vim插件: ctrlp[文件搜索] vim插件: airline[状态栏增强] vim插件: theme[主题] vim插件: tagbar[大纲式导航] vim插件: nerdcommenter[快速注释] vim插件: rainbow_parentheses[括号高亮] vim插件: syntastic[语法检查] vim插件: delimitmate[符号自动补全] vim插件: matchit[成对标签跳转] vim插件: easy-align[快速对齐] vim插件: multiple-cursors[多光标操作] vim插件: vim-signature[快速标记跳转] vim插件: easymotion[快速跳转] vim插件: vundle[管理插件] Elasticsearch几个问题的解决 k-vim 更新9.0版本 关于知识管理工具的思考 Logstash+ElasticSearch+Kibana处理nginx访问日志
分享一份 Vim 简介PPT
2015-05-10 · via Posts on WKLKEN THINKING

这是近期做团队分享的一份ppt, 原稿用markdown仓促写的, 感谢markdownweakpoint, 可以直接将markdown转成ppt

这次分享主要不是讲vim, 更多的是关于工具的使用和思考

其实, 无非是记住一些东西, 忘记一些东西, 定制和寻找适合自己的工具, 善用工具, 成为主人而不是奴隶

将markdown原稿放出, 很多实操演示, 在文稿中是看不到的……


wklken


vim

曲线:

learn-diff


vim

Vim the Six Billion Dollar editor

Better, Stronger, Faster.

Maybe:

成为你最后一个使用的编辑器


vim

文本编辑器 , 不是IDE

能做一些事情, 但是一些事情是做不到的, 不要强求, 该用IDE的时候, 用就是了


how

步骤:(简明 Vim 练级攻略)

存活
感觉良好
觉得更好,更强,更快
使用VIM的超能力

诀窍:

不断练习

肌肉记忆, 直觉-行动而不是思考-行动(十倍差距)

过程:

一个vimer必定会经历的过程

  1. 什么都没有, 纯vi
  2. 什么都有
  3. 只留适合自己的, 不适合自己也要配置成适合自己的
  4. 什么都没有(听说)

target

  • 实操: vim能做什么?
  • 思考:
  1. 哪些是你常用编辑器可以实现的?
  2. 哪些好的功能是你想要却没有的? 能否解决
  3. 你的痛点在哪里?
  4. 工作流

模式

vim-mode


移动1

概览


移动2

忘掉刚才那张图……


移动3

  • hjkl (请杜绝方向键, 移动右手到方向键区浪费时间)

      map <Left> <Nop>
      map <Right> <Nop>
      map <Up> <Nop>
      map <Down> <Nop>
    
  • 单词: w / b / e (忘记: W/B/E-以空白为分隔符, 要多按shift键键/不好记/用得少)

  • 行内: 0 / $ (忘记: ^, 够不着啊)

  • 段落: { / }


移动4

  • 页: <ctrl-u> / <ctrl-d> (忘记: ctrl-f/ctrl-b, 都在左侧键区左手太累, 经常是要上要下, 而不是往一个方向走)

  • 可视范围: H M L (全部忘记, 没多大用, 要按shift, 混淆记忆)

  • 文件内: gg / G / :N (基本够了)

  • 匹配处: % 括号匹配 / # (忘记: *, 在键盘左侧, 太远不好敲, 可以交换#和*的功能)

更强大的, 看后面的插件部分


编辑

N<action>

  • x

  • dd

  • dw / db / d$ / dG / dgg

  • yw / yb / y$

  • yy / p / P

  • J


撤销和重复

  • u

  • .

  • N<command>


选中

select

  • v: vw / vb / vta / v$

block select

  • <ctrl+v> -> hjkl/<ctrl+d>

行首加 / 行尾加


搜索

  • 行内搜索: f / t (可以选择性遗忘t, 同时, 忘记F/T, 甚至可以忘记f, 你不需要)

为什么? 看后面的easy-motion插件


替换

记住这两个似乎够了(频率最高)

  • :1,10s/a/b/g

  • :%s/a/b/g

字符替换

  • rX

文本对象

初学者基本不了解的一个特性

  • <action>a<object> or <action>i<object>

  • a = all / i = in

  • action: d y v c

  • object:

      w(world) / s(sentence) / p{paragraph}
      " ' ) ] }
    
  • 装插件, 可以是: l(line) e(entire file) i(indent)


分屏

  • :sp file1

  • :vsp file2

  • ctrl-w-h/j/k/l (改键 ctrl-h/j/k/l)

  • ctrl-w-H/J/K/L


插件1: 语法检查


插件2: 自动补全与代码片段

两大效率神器

毫秒级补全/ python / c系等, 编译安装, 具体自行文档

括号补全

xml/html标签补全


插件3: 快速编码

快速注释:

快速编辑

去空格

代码对齐


插件4: 快速运行


插件5: 快速移动

行/位置/搜索

mark


插件6: 快速选中

区块

多标签


插件7: 文件导航/搜索

目录导航

标签导航

搜索文件

搜索代码


关于插件1

  • 不是越多越好
  • 配了用不上 = 没配 + 浪费资源
  • 同一功能, 对比几个插件, 选择一个合适的
  • 快捷键配置一定要容易记
  • 相信我, 一个插件用的最多的快捷键就两个, 绝大多数情况下不会多于两个, 不用耗费心力在配置更强大的操作上

关于插件2

  • 更符合自觉的键位/操作
  • 尽量减少敲击次数
  • 杜绝一切无效的敲击
  • 个性化, 定制到每个细节, 力争解决自己所有痛点

高级

  • 怎么配置:

    参考下别人的vim配置, 读插件文档, 读插件代码, 必要时改一份


资源

配置:

文章:

others:


QA

Thx:)