visual studio

VsVim – małe info

Posted on Updated on

Gdy źle ustawiłem jak rozwiązać konfliktujące skróty klawiaturowe:

vsvim bindings conflicts

Btw VsVim działa z Visual Studio 2017. https://marketplace.visualstudio.com/items?itemName=JaredParMSFT.VsVim

Extension z Visual Studio z których korzystam

Posted on Updated on

  1. Resharper
  2. VsVim
  3. RelativeLineNumbers

Właściwie to mało, ale to wszytko czego potrzubuję. Pewnie czasami jeszcze coś o czym aktualnie nie pamiętam (nie mam zainstalowane na maszynie z której piszę).
Chociaż R# is VsVim to takie kobyły, że już więcej nic nie trzeba 🙂

Najnowszy VsVim – wolne visualstudiogallery

Posted on Updated on

Gdy chcemy ściągnąć VsVim (super dodatek do Visual Studio – jak dla mnie 😉 to zazwyczaj wylądujemy na stronie oficjalnych dodatków do Visual Studio (Visual Studio Gallery). Problem z tym jest taki, że ta wersja jest rzadko aktualizowana (ostatnio lipiec – 8 miesięcy temu). A development idzie do przodu 🙂

Właściwym miejscem do ściągania jest więc Open VSIX Gallery . Tam lądują paczki po każdym commitcie do mastera na https://github.com/jaredpar/VsVim. Dzięki serwisowi AppVeyor.
Działa to w skrócie:

  • pobierz najnowsze źródła
  • puść skrypty Continuous Integration (budowanie, testowanie …)
  • deploy jeśli wszystko poszło dobrze (tutaj właśnie na Open VSIX Gallery)

Polecam zainteresować się tego typu rozwiązaniami dla projektów Pet projects (za darmo dla Open Source).

Zakładki w Visual STudio

Posted on

Bookmark – zakładka – stosowana aby zaznaczyć miejsce (linię) w kodzie. Np aktualnie pracujemy nad czymś w kilku miejscach na raz i chcemy szybko przechodzić między tymi miejscami.

Są różne zakładki. Dotychczas korzystałem z CTRL+k+K do ustawiania i CTRL+k+n do przechodzenia do następnej zakładki.

Inną (potencjalnie lepszą) opcją jest ustawianie zakładek numerowanych. Poprzez CTRL+SHIFT+1 ustawiamy zakładkę o numerze 1 a poprzez CTRL+1 przechodzimy do tej zakładki. I tak dalej dla kolejnych numerków.

visual studio bookmark

VsVim – niekorzystanie ze strzałek

Posted on

VsVim i jego vimowe podejście doskonale się sprawdza jeśli chodzi o operacje na “kodzie”. Przesuwanie, podmienianie, nawigacja – wszystko to bez użycia strzałek. Jednak jedno z narzekań jakie czasem słyszę to fakt, że ze strzałek trzeba korzystać gdy trzeba coś wybierać z menu kontekstowych lub z Resharperowych okienek. Nie jest to aż takie bolesne gdy zwróci się uwagę na kilka udogodnień.

Z menu kontekstowego można wybierać na pomocą klawiatury

Może to rzeczywiście nie być takie oczywiste ale można 🙂 Każda taka akcje ma przypisaną literkę (to ta PODKREŚLONA) po kliknięciu której odpali się akcja. Kilka przykładów:

Resharper context menu with keyboard shortcuts
“Refactor this” menu from Resharper
Resharper context menu in solution explorer
R# “Refactor this” menu from solution explorer
Context menu after right click after Visual Studio code tab
Menu po kliknięciu PPM na taba z kodem
 

W powyższych przypadkach sobie poradzimy 😀

Gdzie trzeba użyć strzałek

Niestety jest kilka miejsc gdzie się to nie uda:
WIP…

Brake All – czyli który aktualnie kod się wykonuje

Posted on

Sposobem na debugowanie jest ustawienie brakepointów i czekanie. Czasem jednak się pospieszyliśmy, wcisnęliśmy F5 i już nie wiadomo gdzie jesteśmy. Coś się pod spodem dzieje, może na jakimś Sleepie, Wait’ie, czeka procesor. Rozwiązaniem jest taki mały przycisk Brake All, którego dotychczas nie używałem.

Brake All visual studio

Porównywanie tego samego pliku na jednym ekranie (split) w Visual Studio

Posted on Updated on

Czasem warto porównać fragmenty kodu będące w tej samej klasie. Do tej opcji wchodzimy poprzez WINDOW->Split, a efekt jest taki:

split in visual studio

Opcja jest trochę trudna do znalezienia. Gdy chciałem ją użyć to szukałem Prawym Przyciskiem Myszy na belce aktualnej klasy. Były tam opcje takie jak “New Horizontal Tab Group”, “New Vertical Tab Group”, które robią podobne rzeczy ale nie pozwalają na oglądanie tego samego pliku side-by-side.

Peek definition

Podobny efekt daje kliknięcie na metodzie “Peek Definition”. Jest otwierane inne okno z definicją zaraz pod interesującą nas metoda. Efekt wygląda tak:

peek definition in visual studio

Visual Studio – Replace in Files całych linii

Posted on

Za pomocą funkcji Replace (Replace in Files) można również dopasować znaki końca linii (\r\n). Trzeba jednak użyć switcha Use Regular Expressions.

Przykładowo chcemy wykasować wszystkie linie nawierające komentarz //Given (Unit Testy).

.*//Given\r\n

Replace in document, Visual Studio

VsVim

Posted on

Tryb pracy jest inny. Może krótki filmik wystarczy.
Co zyskujesz: nie sięgasz po kursory (strzałki), po BACKSPACE, DELETE, HOME, END. Mniej używa się Ctrl
Czy ReSharper nie robi tego wszystkiego lepiej? – można zabrać co najlepsze z obydwu – potrafią współżyć.
Ja ukurat znam VIMa od 6 lat, nie korzystałem z niego przez większość czasu ale ostatnio wracam.

Co przyspiesza naukę:
klawisze mają bardzo często powiązanie z nazwą funkcji którą wykonują. d – delete, i – insert, w – word, p – paste, itp.

3 Tryby
insert
normal (command)
vizual
command-line

Insert – coś jak dotychczas, wpisujemy tekst, kasujemy go, chodzimy po nim kursorami i innymi skrótami z VS czy R#. W vim jest to jedyny tryb w którym klawisze które wstukujemy będą wstawiane do edytora.

Normal – wchodzimy do nie ESC, jakby domyślny. Służy do nawigacji po kodzie. Robi się to za pomocą klawiszy h,j,k,l,w,b,0,$ – wymieniając tylko kilka. W tym trybie wycinamy i wklejamy tekst, korzystając z rejestrów.

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