创建新文档

您的文档标题(将显示为 H1)
URL 友好名称(无空格,使用连字符)
创建文档的路径(可选,使用正斜杠创建子目录)

移动/重命名文档

文档的当前位置
文档的新路径(包括别名)
这只会更改文档的路径,不会修改文档的标题(H1 标题)。

删除文档

您确定要删除此文档吗?此操作无法撤销。

警告:如果这是一个文件夹,包括子文件夹和文档在内的所有内容将被删除。

Message

Message content goes here.

Confirm Action

Are you sure?

附件

允许的文件类型:jpg, jpeg, png, gif, svg, webp, txt, log, csv, sfd, zip, pdf, docx, xlsx, pptx, mp4(最大:10MB)

文档文件

正在加载附件...

文档历史

以前的版本

Loading versions...

预览

选择要预览的版本

Wiki 设置

用户界面语言
每个文档保留的版本数量。设置为0以禁用版本控制。
上传文件的最大允许大小(MB)。

用户管理

添加新用户

留空以保持当前密码
拥有这些组的用户可以访问受限部分。

为您的Wiki部分定义基于路径的访问规则。规则按顺序评估。首次匹配生效。

活动规则

从ZIP归档文件导入Markdown文件。文件将被处理并存储在适当的文档结构中。ZIP中的目录结构(类别/子类别)将在wiki中保留。

上传包含要导入的Markdown(.md)文件的ZIP归档(压缩包)。

创建和管理您的 Wiki 数据备份。备份包括所有文档、图像和配置文件。

可用备份

正在加载备份...

添加/编辑访问规则

已选择: /

添加列

vim-编辑器

#Linux #MACOS #文本编辑

VIM 的模式

普通模式,文件打开时即处于普通模式,在其他模式下按下 ESC 键切换回普通模式
编辑模式,可以普通模式下按下以下键,均会进行部分操作并进入编辑模式

命令模式,普通模式下输入英文冒号:

可视模式,普通模式下输入v/V键进入,其中:v进入块视图,V进入行视图,就只能一行一行的选择

编辑多个文件和窗口控制

为什么要要分屏打开文件,主要是方便在多个文件之间转移内容,一个进程下打开多个文件,内容缓冲区是共用的,方便将一个文件的内容复制到另外一个文件中。

打开第一个文件

vim file-1.txt

分屏打开第二个文件

:vs file-2.txt 
# 在VIM的命令模式下输入,即一个ESC键,然后键入冒号,上面那个冒号是命令指示符,代表已经进入VIM的命令模式
# 这个会打开左右两个分屏,左侧分屏是file-1.txt,右侧分屏是file-2.txt
# 如果只想打开一个空的分屏,只需要打入 :vs 即可
:vs
# 分成上下两个分屏
:sp file-2.txt

切换焦点窗口

使用 CTRL-w h/j/k/l 键切换,(左下上右)
使用 CTRL-w Arrow 键(方向键)
使用 CTRL-w w 依次切换
在一个分屏下复制的内容可以在另外一个分屏上粘贴的。

关闭分屏

命令模式下键入 q 并回车即可

内容编辑

定位&光标

没有特别说明的情况下,VIM应该处于普通模式下,在其他模式下按ESC返回普通模式

上下左右移动光标
使用 Arrow 方向键移动
使用 hjkl 移动(分别对应左、下、上、右)

特殊移动
跳转行,直接在命令模式下输入行号
向当前位置移动N个字符或者行数,直接在跳转命令前输入行数,如:10j表示当前位置向下跳转10行
跳转匹配括号,码代码经常遇到,特别是写JAVASCRIPT的,一大堆括号,在非编辑模式下,按下%(SHIFT+5)
翻页:PAGEUP/PAGEDOWN, CTRL-B(后翻),CTRL-F(前翻), 不过CTRL-B和TMUX的捕获键冲突了,需要注意
跳转行首:数字0
跳转行尾:$(SHIFT+4)
光标移动到下个单词
跳转文件首:非编辑模式,按下 gg
跳转文件尾:非编辑模式,按下 G(SHIFT+g)

查找&替换

查找

普通模式下,按下 / 键进入查找模式
命令模式下,输入 /content 以查找内容

替换

命令模式下,对M,N行内查找到的所有内容实施替换,如果没有g标志,只会替换找到的第一个,

:M,Ns/search/replace/g

命令模式下,对全文实施替换替换。 %s/search/replace/g
可视模式下,对选中的块实施替换。在块模式下选择块后,:s/search/replace/g

常用标志位

复制粘贴

复制

复制一行: yy
复制M~N行,:m,ny
复制括号内内容,光标需要先定位到括号处:
ya{ 复制当前配对的括号间内容(包含括号)
yi{ 复制当前配对的括号间内容(不包含括号)
同理,还有 ya(, yi(, ya“, ya' 等,可用于快速定位与复制
当命令变为 c 时,比如 ca{ 会删除此代码块,并进入插入模式

粘贴

只需在普通模式下按 p(小写),缓冲区内容会添加到光标下方一行
还有些其他用法,遇到再说

折叠管理

在写JSON或者JAVASCRIPT的时候,有可能会遇到一大堆的括号,然后大量的缩进,根本搞不清楚哪个括号是对应哪个的,因此将不专注的部分折叠起来,就能专注到需要编辑的部分了。

折叠模式

:set foldmethod=manual
:set foldmethod=syntax
:set foldmethod=indent
:set foldlevel=1 #折叠时显示缩进
:mkview #保存折叠信息
:loadview #读取折叠信息
:help folding
:help fold-marker
:help fold-syntax
:help fold-indent
:help fold-manual

常见操作

手动模式下按照匹配的代码块进行折叠(这个比较常用,括号一起折叠):zfa{
不折叠括号,这样可以看出层次:zfi{
取消折叠: za 或空格键
其他快捷键:在Syntax或Indent模式下可能会遇到
zc/zo 关闭/打开当前折叠,注意用za是切换
zm/zM 关闭所有折叠/关闭所有嵌套折叠
zn/zN 禁用/启用折叠
zr/zR 打开所有折叠/打开所有折叠及其嵌套的折叠
zd/zE 删除当前/所有折叠
zj/zk 切换下一处/上一处折叠

其他常用命令

显示行号

 :set nu 

保存&退出

:w file.txt 保存为file.txt, 直接保存的话,直接w就可以
:wq 保存并退出
:q! 不保存并退出

参考示例

一个示例 vimrc 文件

filetype on
syntax on
set shiftwidth=2
set expandtab
set number
set ts=2
set autoindent
set breakindent
nnoremap <space> za
nnoremap <tab> >>

augroup filetype_python
  autocmd!
  autocmd FileType python setlocal foldmethod=indent
  autocmd FileType python set foldlevelstart=0
  autocmd FileType python setlocal foldmarker=---,---
augroup END

附件

正在加载附件...

评论

暂无评论。成为第一个评论者!

搜索结果