4 changed files with 54 additions and 1 deletions
@ -1,5 +1,9 @@ |
|||||||
|
function! HideIgnoredByGit(...) |
||||||
|
return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '') |
||||||
|
endfunction |
||||||
|
|
||||||
" let g:netrw_keepdir=0 |
" let g:netrw_keepdir=0 |
||||||
let g:netrw_altv=1 " split window to the right |
let g:netrw_altv=1 " split window to the right |
||||||
let g:netrw_liststyle=3 " tree style listing |
let g:netrw_liststyle=3 " tree style listing |
||||||
let g:netrw_list_hide=netrw_gitignore#Hide() |
let g:netrw_list_hide=HideIgnoredByGit() |
||||||
let g:netrw_winsize = 30 |
let g:netrw_winsize = 30 |
||||||
|
@ -0,0 +1,46 @@ |
|||||||
|
function! SendVisualToHttp() range |
||||||
|
let url = 'https://typograf.ru/webservice/?chr=UTF-8' |
||||||
|
" Получаем выделенный текст |
||||||
|
let [line_start, column_start] = getpos("'<")[1:2] |
||||||
|
let [line_end, column_end] = getpos("'>")[1:2] |
||||||
|
let lines = getline(line_start, line_end) |
||||||
|
|
||||||
|
" Корректируем для выделения в пределах строки |
||||||
|
if line_start == line_end |
||||||
|
let text = lines[0][column_start-1 : column_end-1] |
||||||
|
else |
||||||
|
if column_start > 1 |
||||||
|
let lines[0] = lines[0][column_start-1 :] |
||||||
|
endif |
||||||
|
if column_end < strlen(lines[-1]) |
||||||
|
let lines[-1] = lines[-1][ : column_end-1] |
||||||
|
endif |
||||||
|
let text = join(lines, "\n") |
||||||
|
endif |
||||||
|
|
||||||
|
" URL-кодируем текст |
||||||
|
let encoded_text = substitute(system('python3 -c "import urllib.parse; print(urllib.parse.quote(input()))"', text), '\n', '', 'g') |
||||||
|
|
||||||
|
" Формируем полный URL |
||||||
|
let full_url = url . (stridx(url, '?') == -1 ? '?' : '&') . 'text=' . encoded_text |
||||||
|
|
||||||
|
" Отправляем запрос и получаем ответ |
||||||
|
let response = system('curl -s -X POST ' . shellescape(full_url)) |
||||||
|
|
||||||
|
" Заменяем выделенный текст на ответ |
||||||
|
if line_start == line_end |
||||||
|
let new_line = lines[0][: column_start-2] . response . lines[0][column_end :] |
||||||
|
call setline(line_start, new_line) |
||||||
|
else |
||||||
|
" Удаляем старые строки |
||||||
|
execute line_start . ',' . line_end . 'd' |
||||||
|
|
||||||
|
" Вставляем ответ (разбиваем по строкам если нужно) |
||||||
|
let response_lines = split(response, '\n') |
||||||
|
call append(line_start-1, response_lines) |
||||||
|
endif |
||||||
|
|
||||||
|
echo "Текст заменён ответом от сервера" |
||||||
|
endfunction |
||||||
|
|
||||||
|
command! -range -nargs=0 HttpSend <line1>,<line2>call SendVisualToHttp() |
Loading…
Reference in new issue