altairwei / altairwei/WizNotePlus

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

Đang mở
#63 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
tip
Ngôn ngữ chính
C++
Star
598
Fork
90
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**仅适用于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)

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.