Strona 1 z 1

Zautomatyzowanie edycji w vim

: 14 lipca 2014, 14:30
autor: cloudbuster
Witam,
Chciałbym otrzymany plik tekstowy zapisać w nowym miejscu zmieniając wcześniej jego zawartość. Od początku:
1) Otrzymany plik tekstowy zawiera ciąg losowych znaków, np: adjjahbubuyges7t673.25255211jshjibv
2) Chciałbym za pomocą vim'a uzyskać plik z tekstem 73.25255.
3) Pytanie, jak wysterować (jaki napisać skrypt) ten edytor aby:
-znalazł z tekstu kropkę
-zapisał dwa znaki przed nią
-zapisał 5 znaków za nią

-całość połączył zapisując w nowym pliku testowym


Pomożecie?

: 14 lipca 2014, 14:43
autor: klavierkrk
do zmiany znaków korzystam z takiej funkcji (w pliku konfiguracyjnym vimrc):

Kod: Zaznacz cały

function! Zastap()  call inputsave() 
  let zastap1 = input('Input (wejscie): ')
  let zastap2 = input('Output (wyjscie): ') 
  call inputrestore()
    exec ":%s/" . zastap1 . "/" . zastap2 . "/gc"
  
endfunction


nmap <C-A-F6> <nop>


nnoremap <C-A-F6> :call Zastap()<CR>
vnoremap <C-A-F6> :call Zastap()<CR>
inoremap <C-A-F6> <ESC>:call Zastap()<CR>

CTRL+ALT+f6 przywoła ci funkcję,
wprowadzasz "input" na "output" , potwierdzasz enterem.
a na koncu mozesz np. dac "a", czyli all


ale generalnie to nie jest losowy ciąg znaków, ale konkretne wartości.
Spróbuj, może akurat ci się przyda :)

: 14 lipca 2014, 15:42
autor: cloudbuster
dzięki, popróbuję i dam znać