^
vim配置 .md
vim,config,nvim,neovim
<https://github.com/moonprism/nvim>

![](https://kicoe-blog.oss-cn-shanghai.aliyuncs.com/eoyjbdQVQICwhKIwepkg.jpg)

>[info] 还是等ideaVim更新`:normal`功能吧
vim合并行 .md
vi,vim
```
J # 删除行首空格与换行符(既合并到上一行)的正确命令: C-v或VkJ
```
从一本Linux书上找到困扰我许久的vi操作技巧,丢人的开始重新看起vi教程
* [vim速查表](https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt)
* [vim 从入门到精通](https://github.com/wsdjeg/vim-galore-zh_cn)
用变基解决变基 .md
git,rebase
```sh
git pull --rebase
```
>[info] 远程分支被 rebase 后的正确做法
git重新提交 .sh
git
git commit --amend
elasticsearch bulk 批量插入数据 .go
es,golang
// 参考 https://gist.github.com/un1t/ac188472f5dfe759d14f
package main

import (
	"fmt"
	"math/rand"
	"net/http"
	
	// 不会现在还有人在用 v1 版本的 es 吧,不会吧不会吧
	"gopkg.in/olivere/elastic.v1"
)

type CheckResult struct {
	Status  int     `json:"status"`
}

// 生成随机字符id
const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func RandStringBytes(n int) string {
	b := make([]byte, n)
	for i := range b {
		b[i] = letterBytes[rand.Intn(len(letterBytes))]
	}
	return string(b)
}

func main() {
	client, err := elastic.NewClient(http.DefaultClient, "http://****/")
	if err != nil {
		fmt.Printf("%v\n", err)
	}
	for i := 0; i < 500; i++ {
		bulkRequest := client.Bulk()
		for j := 0; j < 10000; j++ {
			checkFake := CheckResult{Status:0}
			id := RandStringBytes(16)
            req := elastic.NewBulkIndexRequest().Index("check").Type("image").Id(id).Doc(checkFake)
			bulkRequest = bulkRequest.Add(req)
		}
		bulkResponse, err := bulkRequest.Do()
		if err != nil {
			fmt.Println(err)
		}
}
aqua .md
![](https://kicoe-blog.oss-cn-shanghai.aliyuncs.com/NyemoxbDmCZYdcDktcRJ.jpg)

<https://twitter.com/Kizuna_0113/status/1264058461358157829>
vim获取选中信息(visual) .md
vim,script
[LeaderF-leaderf#Rg#visual](https://github.com/Yggdroot/LeaderF/blob/7a85ba7dd022a5f93b49bbc8384abbb56b5bbdc5/autoload/leaderf/Rg.vim#L53)

>[info] 把 LeaderF 的代码搬来给 fzf 用

```vim
function! VisualText()
    try
        let x_save = @x
        norm! gv"xy
        return @x
    finally
        let @x = x_save
    endtry
endfunction
" -----------------------------------------------------------------
xnoremap <C-f> :<C-U><C-R>=printf("Lines %s", VisualText()) <CR><CR>
```
linux下安装docker并设置镜像代理 .sh
docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
vim 下一阶段 .md
vi
### 常用命令
* `s` 删除光标所在字符然后进行插入
* `S` 删除光标所在行再进行插入
* `cw` change当前位置到word末尾
* `fa` 查找a之后可以用`;`查找下一个`,`查找前一个
* `%` 括号移动
* `dfl` 删除到下一个l字符处
* `d$` 删除光标到本行末尾 类似的还有`c$`
* `.` 重复上一个操作的命令
* `ctrl+v` 块选中之后,`$` `^` 移动 | `I` 插入,`esc` 将重复每行执行
* `@@` 播放最新录制的宏
* `:%y` 复制整个文件

### normal
执行任意的普通模式命令

`:norm .` `:norm @a`, 可以在块/行选中下重复每行执行

### IDEA 相关
>[warning] vim 从入门到 idea?

>[success] 我只是给 vim 装了 idea 插件罢了(确信

keymap(或者通过ideaVim的:action配置)
- Refactor
	- Rename =>`Alt+R` 原来的`Shift+F6`太难按了
- Editor Tabs
    - Select Next Tab => `Alt+L`
    - Select Previous Tab => `Alt+H`
    - Close => `Alt+Q`
	- 配合 `gd` 和 `ctrl+o`、`shift+shift` 控制 tab

>[info] `Alt+J` 原生,选中下个相同字符串
周刊 2020-05.4 .md
>[info] :bookmark: 第一期,未来会持续分享些好的(博客)文章

- :books: [从零入门 K8s| 人人都能看懂 Pod 与容器设计模式](https://mp.weixin.qq.com/s?__biz=MzA4ODg0NDkzOA==&mid=2247488010&idx=1&sn=37e4a3bff67d5ce466685b646cbab279&chksm=9022adefa75524f9f63ddc98d05210958725b79ba9823ce0e87f8dee8740ee8c59d2ec5de321&mpshare=1&scene=23&srcid=&sharer_sharetime=1590577306539&sharer_shareid=566f67463343b4fd81bb4dbead932b25#rd)
- :seedling: [为什么 0.1 + 0.2 = 0.300000004](https://draveness.me/whys-the-design-floating-point-arithmetic/)
- :octocat: [[能不能好好说话]](https://github.com/itorr/nbnhhsh)
- :baby_chick: [中文互联网中“讨论”的消亡](https://www.gcores.com/articles/121924)
- :trophy: [高能分享之《优雅的编程者》](http://xiaorui.cc/archives/6643)
- :fish_cake: [《睡觉的笨蛋》:一个才华不够仍要坚持自我的故事](https://www.gcores.com/articles/120615)
- :maple_leaf: [环游中国341天后,这位湖北骑士被定格在了家乡外](https://www.yystv.cn/p/6233)