altairwei / altairwei/WizNotePlus

【分享】使用Vimscript完成图片插入

Abierto
#63 1 comentario 0 reacciones 0 asignados Ver en GitHub
tip
Lenguaje dominante
C++
Estrellas
598
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**仅适用于Linux**
首先你需要安装`xclip`,通过它来读取剪贴板内容。
将这段代码加入你的.vimrc文件
*``键位映射需要自行添加,如果不知道映射的键位,在命令模式输入`map `查看。*
```vim
au FileType markdown nnoremap mp :call MarkdownClipboardImage()
function! MarkdownClipboardImage() abort
" Create `img` directory if it doesn't exist
let img_dir = expand('%:h') . '/index_files/'
if !isdirectory(img_dir)
silent call mkdir(img_dir)
endif

let targets = filter(
\ systemlist('xclip -selection clipboard -t TARGETS -o'),
\ 'v:val =~# ''image''')
if empty(targets) | return | endif
let mimetype = targets[0]
let extension = split(mimetype, '/')[-1]

let file_path = img_dir . strftime("%Y-%m-%d-%H:%M:%S") . '.' . extension
let output = system(printf('xclip -selection clipboard -t %s -o > %s',
\ mimetype,file_path))
if v:shell_error != 0
ecohm output
else
execute "normal! o![](" . file_path . ")"
endif
endfunction
```

复制图片,在vim中输入`mp`,将自动保存图片并在下一行插入`![](filepath)`。

需要说明的是,**这里的复制图片是指复制图片内容而不是复制文件**,后者剪贴板中保存的是图片文件的路径,如有需要可以自行实现。

[参考](https://vi.stackexchange.com/questions/14114/paste-link-to-image-in-clipboard-when-editing-markdown)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.