Docker Vim IDE 由博主定制,加入中文环境配置,支持CJK。并升级到最新版本!
Vim Docker

docker pull bloodstar/vimalias edit='docker run -ti --rm -v $(pwd):/home/developer/workspace bloodstar/vim'
edit some.file
alias edit_update="docker pull bloodstar/vim:latest"Vim IDE Docker

What’s inside:
Alpine LinuxVim+ a ton of awesome plugins seebloodstar/vim:latest- Good support of
Golangdevelopment withbloodstar/go-toolscontainer tmuxpowerlineMosh- OpenSSH, Bash, OMF, Python, etc.
how to start the daemon(and all containers)
docker create -v '/usr/lib/go' --name go-tools \
'bloodstar/go-tools' '/bin/true'
docker run -v $('pwd'):/home/developer/workspace \
--volumes-from go-tools \
-v ~/.ssh/pub_rsa:/etc/ssh_keys:ro \
-v /etc/localtime:/etc/localtime:ro \
-d -p 80:80 -p 8080:8080 -p 62222:62222 -p 60001:60001/udp \
--name drop-in bloodstar/drop-in-v /etc/localtime:/etc/localtime:ro - makes tmux display local time
how to connect:
mosh --ssh="ssh -p 62222" -- developer@$<ip> tmux -uor without host identity check:
mosh --ssh="ssh -o StrictHostKeyChecking=no -p 62222" -- developer@$<ip> tmux -uUseful Bash scripts
Connect
#!/bin/bash
ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' drop-in)
mosh --ssh="ssh -p 62222" -- developer@$ip tmux -ustart the daemon(and all containers)
#!/bin/bash
dtc_id=$(docker ps -a -q --filter 'name=vim-go-tools')
if [[ -z "${dtc_id}" ]]; then
echo 'vim-go-tools container not found. Creating...'
docker create -v '/usr/lib/go' --name 'vim-go-tools' \
'bloodstar/go-tools' '/bin/true'
echo 'Done!'
fi
echo 'starting daemon...'
docker run -v $('pwd'):/home/developer/workspace \
--volumes-from vim-go-tools \
-v ~/.ssh/pub_rsa:/etc/ssh_keys:ro \
-v /etc/localtime:/etc/localtime:ro \
-e "GEMAIL=<github email>" \
-e "GNAME=<github name>" \
-d -p 80:80 -p 8080:8080 -p 62222:62222 -p 60001:60001/udp \
--name drop-in bloodstar/drop-in
echo 'Done!'Vim 中文快查表 <= 戳这里
Tips: 在网页上端导航栏,[快查] => [更多快查表],有更多快查表!
快去看看吧。
Vim

Vim简明教程
1. 键位图

vi-vim-cheat-sheet-sch
vi-vim-cheat-sheet-sch
vim分为三种主要模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
2. 命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
2.1. 光标移动
| 按键 | 动作 |
|---|---|
| h 或 向左箭头键(←) | 光标向 左 移动一个字符 |
j 或 向下箭头键(↓) 或<Enter> | 光标向 下 移动一个字符 |
| k 或 向上箭头键(↑) | 光标向 上 移动一个字符 |
l 或 向右箭头键(→) 或 <space> | 光标向 右 移动一个字符 |
| w/W | 移动到下一个单词,大写把标点符号当做单词的一部分 |
| e/E | 移动到词尾,大写把标点符号当做单词的一部分 |
| b/B | 移动到上一个单词,大写把标点符号当做单词的一部分 |
| + | 光标移动到非空格符的下一行 |
| - | 光标移动到非空格符的上一行 |
| G | 移动到这个档案的最后一行 |
| gg | 移动到这个档案的第一行,相当于 1G |
| [Ctrl] + f 或 [Page Down] | 屏幕『向下』移动一页 |
| [Ctrl] + b 或 [Page Up] | 屏幕『向上』移动一页 |
| [Ctrl] + d | 屏幕『向下』移动半页 |
| [Ctrl] + u | 屏幕『向上』移动半页 |
| 0 或功能键[Home] | 数字『 0 』,移动到这一行的最前面字符处 |
| $ 或功能键[End] | 移动到这一行的最后面字符处 |
| H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
| M | 光标移动到这个屏幕的中央那一行的第一个字符 |
| L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
2.2. 复制、粘贴
| 按键 | 动作 |
|---|---|
| y + 光标移动符 | 复制光标所在到移动范围的内容,例如: yj:复制游标所在的那一整行 yG:复制光标所在到最后一行的内容 yw:复制光标所在到下一个单词的内容 |
| yy | 复制游标所在的那一行 |
| p | 在光标后粘贴,如果是单词级的粘贴,就会在光标后一位粘贴,如果是行级的粘贴,就会在光标下一行粘贴,下面的 P 粘贴时同理。 |
| P | 在光标前粘贴 |
2.3. 文本修改
| 按键 | 动作 |
|---|---|
| x | 向 后 删除一个字符 ,相当于[del] |
| X | 向 前 删除一个字符,相当于 [backspace] |
| d + 光标移动符 | 删除光标所在到移动范围的内容,例如: dj:删除游标所在的那一整行 dG:删除光标所在到最后一行的内容 dw:删除光标所在到下一个单词的内容 |
| dd | 删除游标所在的那一整行 |
| J | 将光标所在行与下一行的数据结合成同一行 |
| r + 「字符」 | 替换光标处的单词为该字符 |
| R | 进入replace mode,直到接收到[Esc]按键信号退出该模式 |
2.4. 重复动作
| 按键 | 动作 |
|---|---|
| u | Undo,复原前一个动作。 |
| [Ctrl] + r | 重做上一个动作。 |
| . | 重复前一个动作。 |
| n | 向下重复前一个搜寻的动作。 |
| N | 向上重复前一个搜寻的动作。 |
| 「n」+ 命令符 | 「n」是数字,一般可以理解为重复n次该动作,例如: 10j 表示向下移动10行 |
2.5. 可视模式(vim only)
命令模式下按ctrl + v进入可视模式,这是一个比较特别地模式。
这个模式可以移动光标,选择一大片区域,然后可以对这片区域进行操作。
3. 输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,除了ESC键退出输入模式,其他按键和平常编辑模式是一样的。
3.1. 进入输入模式
| 按键 | 动作 |
|---|---|
| i | Insert,从当前光标前开始输入 |
| I | Insert,在目前所在行的第一个非空格符处开始输入 |
| a | Append,从当前光标后开始输入 |
| A | Append,从光标所在行的最后一个字符处开始输入 |
| o | 在当前光标所在的下一行处输入新的一行 |
| O | 在当前光标所在处的上一行输入新的一行 |
| c + 光标移动符 | 可以理解先按d + 光标移动符,然后再按a |
| C | 可以理解先按dd,然后再按a |
4. 底线命令模式
在命令模式下按下:、/、?键位就进入了底线命令模式。
按ESC键退出底线命令模式。
4.1. 查找替换
| 语句 | 动作 |
|---|---|
| /word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
| ?word | 向上搜索word字符串 |
| :n1,n2 s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间将 word1 替换为 word2 。特别地,最后一行为$, |
| :n1,n2 s#word1#word2#g | 效果同上,这个主要用于替换/符号,例如每一行行首添加//,可以这样操作: :1,$ s#^#//#g |
4.2. 文件操作
| 按键 | 动作 |
|---|---|
| :w [filename] | 将编辑的数据写入到filename文件中,如果不加参数,默认是当前文件 |
| :w! | 若文件属性为『只读』时,强制写入该档案,前提是得有文件的写权限。 |
| :q 或 ZQ | 退出vim,如果未保存的内容,该指令执行失败 |
| :q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
| :wq 或 ZZ | 储存后离开 |
| :wq! | 强制储存后离开 |
| :r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 |
| :n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案。 |
| :! command | 不退出vim执行command指令,多用于调试脚本。 |
4.3. 其他功能
| 按键 | 动作 |
|---|---|
| :set nu | 显示行号 |
| :set nonu | 取消行号 |
| :sv | 当前界面打开文件,并呈纵向分布 |
| :vs | 当前界面打开文件,并呈横向分布 |
| :set fileformat=unix | 由Windows上传到linux的脚本文件,直接执行会报错,需要将其由dos文件格式改unix格式 |
5. 扩展的vim功能
当然,如果仅仅只有原生态的功能还不能让vim成为一个好用的ide,扩展功能才是vim的灵魂所在。
参考
系列教程
tools系列
- Doxygen入门教程
- Vim IDE Docker 以及中文指南
- 第一次使用VS CODE时你应该指导的一切配置
- winrar去广告和破解
- RSS的使用与Tiny Tiny RSS Selfhost自建
- 如何创建属于自己的私人资料库与私人搜索引擎
- 信息时代必备的搜索引擎高级技巧使用指南
- 如何安装OfficeLTSC2021并KMS破解激活教程
- windows系统空间清理与速度优化
图书、音乐、视频多媒体锦集
- 视频图书和音乐完全自动化管理框架图解
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- Zlibrary 图书资源下载与 Calibre 图书管理打造结构化电子图书馆高阶教程
- 如何使用media Go,MusicBrainz,Mp3tag工具刮削音乐 整理音乐资料库
- 私人在线音乐服务器搭建与使用介绍
- 如何使用tinyMediaManager刮削电影和电视剧,动画,并自动下载字幕
- 使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程
- hexo博客博文撰写篇之完美笔记大攻略终极完全版
Nas系列
- 从零开始玩PT-入门到精通
- 如何建立自己的私人电子图书馆–出版书籍,网络小说,漫画一网打尽!
- Zlibrary 图书资源下载与 Calibre 图书管理打造结构化电子图书馆高阶教程
- 音视频图书和音乐自动化管理框架图解
- 使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程
- 如何使用tinyMediaManager刮削电影和电视剧,动画,并自动下载字幕
- Potplayer终极优化教程实现PC视频播放最强画质
- Transmission 使用及其配置
- Qbittorrent 参数详细设置教程
- IPFS从零开始快速入门教程
- 家庭网络优化指南:提升NAT类型,降低游戏延迟、提高下载速度
- 如何创建属于自己的私人资料库与私人搜索引擎
- PT 工具集,Linux硬链接助手
- QNAP 修改应用启动顺序
- qnap硬盘移动位置
- qnap IO 错误消除

