vim

Przykładowe makra vs vim

Posted on Updated on

Makro rozrzucające argumenty metody do nowych linii. (Jako że szukamy ‘, ‘ to zadziała nawet gdy jesteśmy w miejscu gdzie właśnie utworzyliśmy ‘private readonly IService _service’ i inicjalizujemy z konstruktowa.)

0/, <ENTER>ls<ENTER><ESC>
pod literka ‘c’ jako ‘ctor’.

Z jakiegoś powodu ‘(‘ i ‘)’ nie sa widoczne w moich makrach lub zle sie wstawiaja. Any idea?

Add detailed logging to Debug

Sytuacja przed:

var destinationType = _typeMapperService.GetByteArrayBasedType(sourceType);

Sytuacja po:

var destinationType = _typeMapperService.GetByteArrayBasedType(sourceType);

Debug.WriteLine("destinationType '{0}", destinationType.FullName);
Advertisements

Vim – makra

Posted on Updated on

Nagrywanie makra rozpoczynamy klawiszem “q” a nastepnie wybieramy literę do której przypiszemy makro. Potem wciskamy sekwencje klawiszy, które będą makrem. Wszystko kończymy znowu klawiszem “q”. Podczas nagrywania na dole pojawi się dopisek :recording”.

Przykład

Aktualnie przerabiam kod z F# na Haskella. Czesto więc pojawiają się rzeczy które w Haskellu są nadmiarowe i które trzeba wykasować na np “let ” oraz “new “.

ql:s/let //[ENTER]q – taka sekwencja klawiszy sprawi że zostanie nagrane makro które wykasuje jedno wystąpienie ciagu “let ” z aktualnej linii.

Uruchomienie makra – @l

Dokładniejsze zamiany

powyższy kod jest “naiwny” tzn zachowa się źle w niektórych przypadkach np zamieni słowo “costamlet “. Żeby wyłapać kiedy “let” jest całym słowej dajemy

s:\<let\> :: – ale o tych i innych rzeczach trzeba już poczytać w bardzo intuicyjnej dokumentacji – bez linka bo google sobie radzi.

Backreferences

Chodzi o inteligentniejsze zamiany czyli podmianę tylko części. Chcielibyśmy aby “… (rabbit : Rabbit) …” zostało zamienione na “… rabbit …”. W F# czasem potrzebne było dokładne wyspecyfikowanie typu argumentu, natomiast w Haskellu tego nie potrzebuję. Makro które to zamiani.


s:(\(\w\+\) \: \w\+):\1:
– dopasuj cały tekst między nawiasami a pierwszy wyraz dopasuj jako grupe. Następnie zamiast całego dopasowanego tekstu zostaw tylko to co zostało w grupie “1” czyli “rabbit”.

Btw nie musimy myśleć o tym tylko jako o makrze. Można też obyć się bez makra tylko po prostu w linii komend na dole wykonując ten kod.

Vimium oprócz Chrome także dla Opery

Posted on Updated on

Project Vimium (http://krzysztofmorcinek.wordpress.com/2013/08/01/vimium-i-nie-potrzebujemy-myszki-w-chromie/) był kiedyś na Operze ale tylko w wersji 11 i 12 (skończyło się gdzieś w 2012).

Teraz gdy Opera działa na Webkit można używać rozszerzeń z Chrome.

Opis dla Vimium:

For those using Opera 15+ it is possible to install the Vimium extension:
https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb
Which can be installed via:
https://addons.opera.com/en/extensions/details/download-chrome-extension-9/

Kroki po kolei:
– instalujemy https://addons.opera.com/en/extensions/details/download-chrome-extension-9/
– instalujemy https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb
– musimy w Extension Manager w Operze explicite zainstalować (dopuścić) Vimium.

VsVim journey

Posted on Updated on

>> indent
<< unindent


:vmap >>
:vmap <<

from https://github.com/jaredpar/VsVim/issues/1133

http://vim.wikia.com/wiki/Search_and_replace

“2p – numbered registers – przedostatni

For example when you put this in your .vimrc

vmap r "_dP // it's a capital 'p' on the end

From http://stackoverflow.com/questions/54255/in-vim-is-there-a-way-to-delete-without-putting-text-in-the-register

Esc zamiast CapsLock

CapsLock jest naprawdę zbędnym klawiszem, a w Vim Escape jest używany dość często. Proponuję je przemapować.
http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_Windows
Ja skorzystałem z opcji AutoHotkey. Najprostsze rozwiazanie czyli plik z rozszerzeniem .ahk, np escFromCapsLock.ahk posiadający jedną linijkę:


Capslock::Esc

Taki skrypt dodajemy do Autostartu.

Problem, Praca w trybie Administratora: jeśli mamy program uruchomiony w trybie Administratora to powyższy skrypt nie zadziała. Żeby już nie kombinować za bardzo to wtedy odpalam sobie ten skrypt ręcznie jako Administrator.

Domyślny schowek Vima jest także schowkiem Windowsowym

Dodajemy do _vimrc:

:set clipboard=unnamed

Źródło: http://stackoverflow.com/questions/11489428/how-to-make-vim-paste-from-and-copy-to-systems-clipboard

zz, zt, zb – position cursor at middle, top, or bottom of screen

http://stackoverflow.com/questions/1276403/simple-vim-commands-you-wish-youd-known-earlier