Skip to content

Vim: łatwe zwiększanie/zmnieszanie liczb i liter

by zergu on Kwiecień 17th, 2011 Blip Facebook Flaker Twitter Wykop

Vim pozwala na łatwe zwiększanie lub zmniejszanie liczb, które mamy w trybie edycji pod kursorem poprzez skróty CTRL-A (zwiększanie) i CTRL-X (zmniejszanie).

Kiedy i jak to działa?

Vim może operować na 4 zestawach znaków:

  • liczby dziesiętne,
  • liczby ósemkowe,
  • liczby szesnastkowe,
  • litery.

Liczby ósemkowe Vim rozpoznaje po zerach początkowych. Przykładowo: 01 jest zwiększane do 02, 007 do 010. Liczy szesnastkowe Vim rozpozna, jeśli zaczynają się od 0x lub 0X — tym samym zwiększenie wygląda przykładowo tak: 0xff0x100. Pozostałe liczby traktowane są jako dziesiętne, a operacje na nich są dość intuicyjne.

Ponadto Vim może zwiększać pojedyncze litery: 'a' zostanie zwiększone do 'b', jednak próbując zwiększyć 'aa' zmieni się tylko litera pod kursorem, a nie całe słowo.

Przejmujemy kontrolę

Za pomocą opcji :set nrformats (skrót nf) możemy wyłączyć lub włączyć rozpoznawanie liter, liczb ósemkowych i szesnastkowych. Dostępne opcje to:

  • alpha,
  • octal,
  • hex.

Liczby dziesiętne zawsze są rozpoznawane.

Moje ustawienie w .vimrc to:
set nrformats=alpha,hex
Różni się ono od domyślnego przede wszystkim wyłączeniem zwiększania ósemkowego, gdyż dużo częściej operuję na słowach typu 006, 007, 008 niż liczbach ósemkowych. Inaczej mówiąc zmieniam z 007 na 008, a nie na 010.

Uwagi

  • Skróty CTRL-A, CTRL-X mogą operować na ujemnych liczbach dziesiętnych.
  • Możliwe jest wielokrotne zwiększenie, przez podanie liczby wykonań zaraz przez skrótem. Przykładowo mając pod kursorem cyfrę 0x01 i wklepując 17<CTRL-A> otrzymamy 0x12.

Podobne wpisy:

  1. Vim: dopełnianie dowolnego tekstu (np. słów kluczowych PHP)
  2. Krótko: Vim i powolna edycja plików PHP

From → Vim

One Comment
  1. U mnie Vim nie chce działać dla liter. Muszę u Ciebie zobaczyć jak to działa, bo to coś dziwnego.

Comments are closed.