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

Vim Docker

Vim Docker

docker pull bloodstar/vim
alias 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

drop-in

What’s inside:

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 -u

or without host identity check:

mosh --ssh="ssh -o StrictHostKeyChecking=no -p 62222" -- developer@$<ip> tmux -u

Useful Bash scripts

Connect
#!/bin/bash
ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' drop-in)
mosh --ssh="ssh -p 62222" -- developer@$ip tmux -u
start 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速查

Vim简明教程

1. 键位图

vi-vim-cheat-sheet-sch

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. 重复动作

按键动作
uUndo,复原前一个动作。
[Ctrl] + r重做上一个动作。
.重复前一个动作。
n向下重复前一个搜寻的动作。
N向上重复前一个搜寻的动作。
「n」+ 命令符「n」是数字,一般可以理解为重复n次该动作,例如: 10j 表示向下移动10行

2.5. 可视模式(vim only)

命令模式下按ctrl + v进入可视模式,这是一个比较特别地模式。

这个模式可以移动光标,选择一大片区域,然后可以对这片区域进行操作。

3. 输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,除了ESC键退出输入模式,其他按键和平常编辑模式是一样的。

3.1. 进入输入模式

按键动作
iInsert,从当前光标前开始输入
IInsert,在目前所在行的第一个非空格符处开始输入
aAppend,从当前光标后开始输入
AAppend,从光标所在行的最后一个字符处开始输入
o在当前光标所在的下一行处输入新的一行
O在当前光标所在处的上一行输入新的一行
c + 光标移动符可以理解先按d + 光标移动符,然后再按a
C可以理解先按dd,然后再按a

4. 底线命令模式

在命令模式下按下:/?键位就进入了底线命令模式。

按ESC键退出底线命令模式。

4.1. 查找替换

语句动作
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向上搜索word字符串
:n1,n2 s/word1/word2/gn1 与 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的灵魂所在。

参考

系列教程

全部文章RSS订阅

tools系列

Tools 分类 RSS 订阅

图书、音乐、视频多媒体锦集

Nas RSS分类订阅

Nas系列

Nas 分类 RSS 订阅

Docker系列

Docker 分类 RSS 订阅


Vim IDE Docker 以及中文指南
发布于
2021年9月15日
许可协议。转载请注明来源
评论
数据加载中 ...
 上一篇

阅读全文

1.5 万字 CSS 基础拾遗(核心知识、常见需求)
1.5 万字 CSS 基础拾遗(核心知识、常见需求) 1.5 万字 CSS 基础拾遗(核心知识、常见需求)
1.5 万字 CSS 基础拾遗,覆盖核心知识、常见需求。雄文推荐!本篇文章围绕了 CSS 的核心知识点和项目中常见的需求来展开。虽然行文偏长,但偏基础,适合初级中级前端阅读,阅读的时候请适当跳过已经掌握的部分。
2021-09-15
下一篇 

阅读全文

深度学习之视频人脸识别系列
深度学习之视频人脸识别系列 深度学习之视频人脸识别系列
深度学习之视频人脸识别系列,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视频动态数据在人脸识别技术上的差异。
2021-09-14