Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.21 KB | None | 0 0
  1. \documentclass[a4paper,10pt]{article}
  2.  
  3. \usepackage[utf8]{inputenc}
  4. \usepackage[T1]{fontenc}
  5. \usepackage{xcolor}
  6. \usepackage{graphicx}
  7. \usepackage{hyperref}
  8.  
  9. \usepackage{listings}
  10. \lstset{
  11. numbers=left,
  12. numberstyle=\small,
  13. numbersep=8pt,
  14. frame = single,
  15. xleftmargin=15pt,
  16. framexleftmargin=15pt}
  17. %opening
  18.  
  19. \title{Wstep do VIM'a}
  20. \author{Filip Krasiński}
  21.  
  22. \begin{document}
  23.  
  24.  
  25. \maketitle
  26.  
  27. \begin{abstract}
  28.  
  29. \end{abstract}
  30.  
  31. \tableofcontents
  32.  
  33. \section{Czym jest vim?}
  34.  
  35. \textbf{VIM} jest zaawansowanym edytorem tekstu dostępnym z poziomu konsoli - nie wymaga on od nas zainstalowanego środowiska graficznego. Zostal napisany przez holenderskiego programistę Brama Moolenaara. Vim należy do grupy wolnego oprogramowania o otwartym kodzie źródłowym. Pierwsza wersja została wydana w 1991 roku.
  36.  
  37. Vim wydawany jest na własnej licencji typu charityware, kompatybilnej z GPL. Oznacza to, iż użytkownik Vima, otrzymując go nieodpłatnie, jest zachęcany przez autora do dokonywania wpłat na cele charytatywne – tutaj na pomoc ofiarom AIDS w Ugandzie.
  38.  
  39. Vim w ostatnich latach był kilkukrotnie wybierany na najpopularniejszy edytor tekstowy wśród czytelników Linux Journal, wyprzedzając m.in. Emacsa.
  40.  
  41.  
  42. \section{Instalacja oraz konfiguracja vim'a}
  43.  
  44. \subsection{Instalacja}
  45.  
  46. Vim'a jnstaluje sie bardzo prosto jednak wszystko zalezy od naszego srodowiska pracy. W systemach rodziny Windows nowszych od Windows Milenium obsługa aplikacji konsolowych została zredukowana do minimum, więc nie możemy cieszyć się czystym Vimem. Powstała jednak nakładka, równie użyteczna i wyposażona w parę dodatków. Zatem aby zainstalować vim'a na systemie microsoftu należy pobrać plik wykonawczy z tego \href{https://www.vim.org/download.php}{\textcolor{blue}{linku}} i podążacć względem instrukcji.
  47.  
  48. Na linuxie mamy do wyboru parę opcji. Najczęściej jest dołączony do dystrybucji, lecz czasem tak nie jest. Możemy użyć repozytoriów, w których zazwyczaj jest. Możemy też spróbować kompilacji ze źródeł, jeżeli chcemy mieć najświeższą wersje, lub jeśli repozytoria są niedostępne.
  49. Jednak zazwyczaj wystarczy włączyć terminal (jeśli stosujemy środowisko graficzne) i wpisujemy:\\
  50.  
  51. \textbf{sudo apt-get install vim}\\\\
  52. Może się zdarzyć, że APT chce pobrać parę dodatkowych pakietów, musimy to wtedy zaakceptować. Warto jeszcze posprzątać śmieci:\\
  53.  
  54. \textbf{sudo apt-get autoremove}\\\\
  55. Koniec, możemy się cieszyć pełnym, prawdziwym Vimem. Możemy sprawdzić działanie pakietu:\\
  56.  
  57. \textbf{vim foo.txt}\\\\
  58. Jeśli wszystko poprawnie się uruchomi to gratulacje, właśnie zainstalowałeś vim'a.
  59. %Tempor id eu nisl nunc mi ipsum faucibus \textbf{vitae aliquet}. Adipiscing enim eu turpis egestas pretium. Ultricies mi quis hendrerit dolor magna. %Hendrerit gravida rutrum quisque non tellus. Rutrum quisque non tellus orci ac auctor augue mauris augue. \texttt{Lorem ipsum dolor sit amet %consectetur}. At augue eget arcu dictum. Tristique et egestas quis ipsum suspendisse ultrices. Est ultricies integer quis auctor elit sed vulputate. Proin %sed libero. Ullamcorper malesuada proin libero nunc. \emph{Facilisis mauris sit amet massa vitae tortor condimentum}.
  60. %\textcolor{red}{aaaaaaaaaaaaa} \footnote{{}n o t a t k a}
  61.  
  62. \subsection{Konfiguracja}
  63. Vim jest programem, który w dużym stopniu można dostosować do potrzeb użytkownika. Standardowo edytor korzysta z pliku konfiguracyjnego, wczytywanego podczas uruchamiania programu, który znajduje się zazwyczaj w katalogu domowym użytkownika (\textbf{${\sim}$/vim.rc}). W zależności od systemu operacyjnego, z jakiego korzystamy, jego lokalizacja i nazwa mogą się różnić.
  64.  
  65. W większości przypadków będziemy edytować plik konfiguracyjny ręcznie, za pomocą naszego ulubionego edytora. W przypadku, gdy pliku brakuje, możemy go wygenerować z poziomu programu za pomocą komendy\\
  66.  
  67. \textbf{mkv nazwapliku }\\\\
  68. Powyższa komenda zapisze wszystkie ustawienia (:set) i mapowane klawisze (:map) do pliku konfiguracyjnego o nazwie nazwapliku, w aktualnej lokalizacji. Oczywiście, zamiast samej nazwy pliku można podać całą ścieżkę. Jeżeli nie podamy żadnej nazwy pliku, ustawienia zostaną zapisane do domyślnej lokalizacji jako plik o domyślnej nazwie, które to zależą od danego systemu operacyjnego.
  69.  
  70. Przejdźmy teraz do samego pliku konfiguracyjnego. W Linuksie plik taki powinien zostać utworzony w katalogu domowym użytkownika i mieć nazwę .vimrc. W Windowsie, natomiast, o nazwie \_vimrc (sprawdzić dokładnie). Linie pliku zaczynające się od cudzysłowu są komentarzami. Można także w połowie linii zacząć komentarz, jednak nie zawsze ten sposób będzie działał (wówczas przenosimy komentarz do nowej linii).
  71. Teraz pokrótce przedstawię parę najbardziej przydatnych opcji: \\[1cm]
  72.  
  73. \begin{center}
  74. \begin{tabular}{|l|l|}
  75. \hline
  76. \textbf{Komenda} & \textbf{Opis} \\
  77. \hline
  78. syntax on & kolorowanie składni \\
  79. \hline
  80. colorscheme & zmiana motywu \\
  81. \hline
  82. set tabstop & zmiana wielkość tabulatora (wizualnie) \\
  83. \hline
  84. set softtabstop & zmiana ilości spacji zmiast tabulatora \\
  85. \hline
  86. set number & wyświetlanie numeru linii \\
  87. \hline
  88. set foldenable & zawijanie wierszy \\
  89. \hline
  90.  
  91. \end{tabular}\\[1cm]
  92. \end{center}
  93.  
  94. Oczywiście tych opcji jest o wiele, wiele więcej jednak nie ma najmniejszego sensu wypisywanie ich wszystkich.
  95.  
  96.  
  97. \section{Tryby pracy w vim'ie}
  98. \subsection{NORMAL}
  99. W tym trybie vim pracuje zaraz po uruchomieniu. Wydawane tutaj różne skróty klawiaturowe pozwalają przejść do innego trybu, kasować tekst, kopiować tekst lub go przenosić. Tryb przeglądania dokumentu. Możemy spokojnie przesuwać kursor po tekście klawiszami:
  100.  
  101. \begin{itemize}
  102. \item h - W lewo
  103. \item j - W górę
  104. \item k - W dół
  105. \item l - W prawo
  106. \end{itemize}
  107.  
  108. Równie dobrze możemy korzystać ze zwykłych strzałek. Naciśnięcie jakiegoś przycisku nawigacyjnego razem z klawiszem Shift spowoduje przeskok o całą stronę, a z Ctrl o jedno słowo. Możemy kasować znaki pod kursorem klawiszem x oraz całe linie dwukrotnym naciśnięciem klawisza d. Możemy też przechodzić płynnie do każdego innego trybu. Właśnie w Normal trybie poprawiamy swoje błędy, cofając klawiszem u i powtarzając cofniętą operację Ctrl + R.
  109.  
  110. \subsection{INSERT}
  111. Aby przejść do tego trybu naciskamy klawisz [i] od tej pory możesz pisać tekst tak jak w każdym innym edytorze. Aby zakończyć edycję musisz nacisnąć klawisz [Esc].
  112.  
  113. \subsection{VISUAL}
  114. Aby przejść do tego trybu naciskamy klawisz [v]. Służy do nawigacji i manipulacji wyborów tekstowych, tryb ten pozwala na wykonywanie większości normalnych poleceń i kilka dodatkowych poleceń, na zaznaczonym tekście.
  115.  
  116. \section{Makra}
  117.  
  118. Makro to zestaw instrukcji wykonanych w jednym kroku. Podczas programowania makra pozwają nam na automatyzjację powtarzalnych czynności, które stają się dzięki temu mniej nudne i mniej podatne na błędy. Vim jako jeden z najpotężniejszych edytorów tekstu posiada tą funkcjonalność wbudowaną.\\
  119.  
  120. Aby nagrać makro:
  121. \begin{enumerate}
  122. \item wchodzimy w tryb nagrywania: qx, gdzie ${x \in <a; z>}$
  123. \item wykonujemy zestaw instrukcji jak zwykle: (komendy vim)
  124. \item zatrzymujemy proces nagrywania: q
  125. \item @x który wybraliśm - uruchmienie makra
  126. \end{enumerate}
  127. \bigskip
  128.  
  129. Najpierw dobrze jest się krótko zastanowić, co powinniśmy nagrać. Załóżmy, że mamy plik z listą piosenek i artystów, który chcemy umieścić na stronie. Każdy wiersz powinien być pokazany jako osobny element listy, a tytuł piosenki musi być sformatowany kursywą. Poniżej zawartość pliku:
  130.  
  131. \begin{lstlisting}[linewidth=12cm]
  132. "All Along the Watchtower", Jimi Hendrix
  133. "Smells Like Teen Spirit", Nirvana
  134. "Oops!... I did it again", Britney Spears
  135. "A Hard Day's Night", The Beatles
  136. "One", Metallica
  137. "Lasy Pomorza", Behemoth
  138. \end{lstlisting}
  139.  
  140. Aby przekonwertować pierwszą linię, używając vima, wykonalibyśmy podobną sekwencję komend:
  141. \begin{enumerate}
  142. \item Przejdź na początek linii wciskając \^\\
  143. \begin{lstlisting}[linewidth=12.5cm]
  144. "All Along the Watchtower", Jimi Hendrix
  145. \end{lstlisting}
  146.  
  147. \item Wejdź w tryb edycji (i) , dodaj dwie spacje i tagi otwierające: \\
  148. \begin{lstlisting}[linewidth=12.5cm]
  149. <li><i>"All Along the Watchtower", Jimi Hendrix
  150. \end{lstlisting}
  151.  
  152. \item Wyjdź z trybu edycji (ESC) i przesuń kursor do pierwszego przecinka: f,:
  153. \item Włącz tryb edycji (i) i dodaj tag kończący kursywę:
  154. \begin{lstlisting}[linewidth=12.5cm]
  155. <li><i>"All Along the Watchtower"</i>, Jimi Hendrix
  156. \end{lstlisting}
  157.  
  158. \item Wyjdź z trybu edycji (ESC), przeskocz na koniec linii włączając go ponownie (A) i dodaj tag zamykający listę \\
  159. \begin{lstlisting}[linewidth=12.5cm]
  160. <li><i>"All Along the Watchtower"</i>, Jimi Hendrix</li>
  161. \end{lstlisting}
  162.  
  163. \item Wyjdź z trybu edycji (ESC) i przejdź do następnej linii Pozostałe wiersze mogą być sformatowane w identyczny sposób. Ręczne wykonanie tych samych czynności na całym pliku byłoby bardzo pracochłonne i podatne na błędy. Szczególnie, jeśli plik jest duży. Oczywistym jest, że lepiej jest pozwolić zrobić to komputerowi.
  164.  
  165. \end{enumerate}
  166.  
  167. Teraz aby nagrać makro wystarczy wykonać sekwencję opisaną już wcześniej, aby przekonwertować pierwszą linię. Bardzo ważne jest, abyśmy skończyli w pozycji dogodnej do rozpoczęcia kolejnej iteracji.
  168.  
  169. Podczas nagrywania makra sformatowaliśmy już pierwszą linię. Zakładając, że zapisaliśmy makro w rejestrze 'a', możemy przekonwertować kolejną linię wciskając: \textbf{@a}
  170.  
  171. Nie musimy jednak wprowadzać tej sekwencji dla każdej linii. Aby sformatować pozostałe cztery wystarczy, że wpiszemy: \textbf{4@a}\\
  172.  
  173. W wyniku otrzymamy:
  174. \begin{lstlisting}[linewidth=12.5cm]
  175. <li><i>"All Along the Watchtower"</i>, Jimi Hendrix</li>
  176. <li><i>"Smells Like Teen Spirit"</i>, Nirvana</li>
  177. <li><i>"Oops!... I did it again"</i>, Britney Spears</li>
  178. <li><i>"A Hard Day's Night"</i>, The Beatles</li>
  179. <li><i>"One"</i>, Metallica</li>
  180. <li><i>"Lasy Pomorza"</i>, Behemoth</li>
  181. \end{lstlisting}
  182.  
  183.  
  184. \section{Ograniczenia vim'a}
  185.  
  186.  
  187. Mimo swoich imponujących możliwości – zwłaszcza w zakresie automatycznego przetwarzania tekstu – Vim standardowo oferuje dość ograniczone wsparcie dla operacji na pionowych blokach. Przy czym o ile skopiowanie pionowego bloku tekstu nie jest żadnym problemem (w trybie \textbf{VISUAL}), to już zastąpienie takim blokiem w trybie \textbf{REPLACE} innego bloku z reguły nie przynosi spodziewanego rezultatu. Wynika to z faktu, że Vim w swej istocie pozostał edytorem wierszowym – nadającym się głównie do pisania kodu, więc niepraktycznym do tworzenia np. grafiki ASCII, gdzie swobodne manipulacje na pionowych blokach tekstu wymagają traktowania ekranu raczej jak matrycy znaków niż zbioru wierszy. Z tego samego powodu nie należy do szczególnie wygodnych poruszanie się w pionie po długich, zawiniętych wierszach. Chyba że ustawimy to w pliku konfiguracyjnym. Jednakże ogromna konfigurowalność edytora i możliwość stworzenia skryptów zwiększających jego funkcjonalność powodują, że powyższe ograniczenia mogą być zlikwidowane.
  188.  
  189. \section{Wyszukiwanie tekstu}
  190. Często zdarza się, że musimy wyszukać jakiejś frazy w tekście, VIM nam to umożliwia. Aby wszukać tekst w otwartym dokumencie należy wpisać: \\
  191.  
  192. \textbf{/wyszukiwany\_tekst}\\\\
  193. Jeżeli chcemy przejśc do następnego wystąpienia wyszukiwanej frazy należy nacisnąć \textbf{n} a gdy chcemy przejść do poprzedniego wystąpienia musimy nacisnąć \textbf{Shift + n}
  194. Gdybyśmy chcieli zamienić wszystkie wystąpienia wyszukiwanego tekstu musimy użyc komendy:\\
  195.  
  196. \textbf{\%s/foo/bar}\\\\
  197. Komenda ta zamieni wszytkie wyrazy 'foo' na 'bar'
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement