Zautomatyzowanie edycji w vim

Potrzebujesz pomocy z C, C++, perl, python, itp.
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Zautomatyzowanie edycji w vim

Post 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?
klavierkrk
Beginner
Posty: 257
Rejestracja: 14 maja 2013, 17:18

Post 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 :)
cloudbuster
Beginner
Posty: 126
Rejestracja: 02 lipca 2013, 22:31

Post autor: cloudbuster »

dzięki, popróbuję i dam znać
ODPOWIEDZ