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

推荐订阅源

T
Tor Project blog
月光博客
月光博客
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
N
News and Events Feed by Topic
The Cloudflare Blog
博客园_首页
NISL@THU
NISL@THU
量子位
A
Arctic Wolf
Y
Y Combinator Blog
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
C
Cisco Blogs
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Tenable Blog
PCI Perspectives
PCI Perspectives
S
Security Affairs
Forbes - Security
Forbes - Security
Hugging Face - Blog
Hugging Face - Blog
C
CERT Recently Published Vulnerability Notes
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Hacker News: Front Page
S
Securelist
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
罗磊的独立博客
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
The Last Watchdog
The Last Watchdog
小众软件
小众软件
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
Last Week in AI
Last Week in AI
爱范儿
爱范儿
AWS News Blog
AWS News Blog
MongoDB | Blog
MongoDB | Blog

博客园 - 采飞扬

坑爹呀,好久没来,竟然。。。 Windows下的Memcache安装 oracle 10.2.0.4 patch的下载地址列表 oracle授权grant [转]ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法 简单解决linux安装Oracle乱码问题 直接双击页面元素进行修改的HTML代码 真正完全解决MyEclipse update progress错误的方法 批量修改MSSQL表和视图及存储过程的所有者及备份等 再爆hzhost6.5虚拟主机管理系统的SQL注入漏洞3 小软件,休息一下 AJAX--'sys'未定义脚本错误 Tar命令的详细用法 MySQL数据库的备份及恢复 (转) 关于MySQL的1067错误解决方法 Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法二 AJAX.NET 1.0 "Sys未定义" 解决方法 关于VS2005 无法使用切换到设计视图的解决方法 C#获取CPU序列号,MAC,计算机名等等
功能强大的编辑器--Vi
采飞扬 · 2007-06-20 · via 博客园 - 采飞扬

在Vi 中移动光标

    k            上
            h     l        左    右
                j            下
            ^          移动到该行第一个非空格的字符处
            w          向前移动一个单词,将符号或标点当作单词处理
            W          向前移动一个单词,不把符号或标点当作单词处理
            b          向后移动一个单词,把符号或标点当作单词处理
            B          向后移动一个单词,不把符号或标点当作单词处理
            0          到行首
            $          到行尾
            gg         到页首
            G          到页末
            行号+G     跳转到指定行
            Ctrl+g     查询当前行信息和当前文件信息
            fx         向右跳到本行字符x处(x可以是任何字符)
            Fx         向左跳到本行字符x处(x可以是任何字符)
            tx         和fx相同,区别是跳到字符x前
            Tx         和Fx相同,区别是跳到字符x后
            CTRL+U     向上滚动半屏
            CTRL+D     向下滚动半屏
            

退出Vi

ZZ:退出vi并保存
            :q! :退出vi,不保存
            :wq :退出vi并保存
            

重复操作

.:重复上一次操作
            

自动补齐

C-n        匹配下一个关键字
            C-p        匹配上一个关键字
            

插入

o:在光标下方新开一行并将光标置于新行行首,进入插入模式。
            O:同上,在光标上方。
            a:在光标之后进入插入模式。
            A:同上,在光标之前。
            R:进入替换模式,直到按下Esc
            set xxx:设置XXX选项。
            

在Vi中删除

x: 删除当前光标下的字符
            dw:删除光标之后的单词剩余部分。
            d$:删除光标之后的该行剩余部分。
            dd:删除当前行。
            c: 功能和d相同,区别在于完成删除操作后进入INSERT MODE
            cc:也是删除当前行,然后进入INSERT MODE
            

恢复误操作

u: 撤销最后执行的命令
            U: 修正之前对该行的操作
            Ctrl+R:Redo
            

在Vi中操作Frame

c-w c-n 增加frame
            c-w c-c 减少frame
            c-w c-w 切换frame
            c-w c-r 交换两个frame
            

在Vi中查找

/ + 字符串:即可在当前文件查找相应的字符串。
            继续查找同一个字符串,按n或/(ENTER),若要反向继续查找,按Shift+N。
            若要逆向查找,用?代替 /
            .*[]^%~$ 在Vi中具有特殊含义,若需要查找则应该加上转义字符"\"
            % :查找配对的括号。
            s/old/new/g:替换old为new,若没有g则表示只替换一个。
            若要每个替换都向用户询问则应该用gc选项
            

查找的一些选项

设置高亮

:set hlsearch      设置高亮
            :set nohlsearch    关闭高亮
            :nohlsearch        关闭当前已经设置的高亮
            

增量查找

:set incsearch     设置增量查找
            :set noincsearch 关闭增量查找