W Intellij Idea dostępna jest funkcja. Powiedzmy, że użyłem zmiennej myCamelCase
gdzieś w moim kodzie. Następnie, jeśli wpiszę: mCC
i naciśnij Ctrl - Wpisz lub taką kombinację klawiszy, która rozwija się do myCamelCase
. Czy jest coś podobnego w Vimie?Rozszerzenie CamelCase w Vimie jak Intellij Idea?
Odpowiedz
Dobra, wybacz mi, że odpowiadam dwa razy, ale ponieważ moja pierwsza próba nie dotarła do celu, będę miał jeszcze jedną szansę. Jest to bardziej skomplikowane, niż myślałem, ale być może nie tak skomplikowane, jak to zrobiłem (!).
Zostało to zmienione tak, aby sugerować wszystkie pasujące nazwy zmiennych.
Przede wszystkim, oto funkcja wygenerować skrót „MCC” ze sznurkiem do „myCamelCase”:
function! Camel_Initials(camel)
let first_char = matchstr(a:camel,"^.")
let other_char = substitute(a:camel,"\\U","","g")
return first_char . other_char
endfunction
Teraz tutaj jest to funkcja, która bierze skrót („MCC”) i skanuje bieżący bufor (wstecz od bieżącego wiersza) dla "słów", które mają ten skrót. Lista wszystkich meczów jest zwracany:
function! Expand_Camel_Initials(abbrev)
let winview=winsaveview()
let candidate=a:abbrev
let matches=[]
try
let resline = line(".")
while resline >= 1
let sstr = '\<' . matchstr(a:abbrev,"^.") . '[a-zA-Z]*\>'
keepjumps let resline=search(sstr,"bW")
let candidate=expand("<cword>")
if candidate != a:abbrev && Camel_Initials(candidate) == a:abbrev
call add(matches, candidate)
endif
endwhile
finally
call winrestview(winview)
if len(matches) == 0
echo "No expansion found"
endif
return sort(candidate)
endtry
endfunction
Następnie oto funkcja zwyczaj uzupełniania że czyta słowo pod kursorem i sugeruje mecze zwracanych przez powyższych funkcji:
function! Camel_Complete(findstart, base)
if a:findstart
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start - 1] =~ '[A-Za-z_]'
let start -= 1
endwhile
return start
else
return Expand_Camel_Initials(a:base)
endif
endfunction
aby skorzystać z tego, należy zdefiniować „completefunc”:
setlocal completefunc=Camel_Complete
do korzystania Zakończenie wstawić-mode, typ CTRL-XCTRL-U, ale zazwyczaj na mapie, aby CTRL-L:
inoremap <c-l> <c-x><c-u>
Z tego kodu w swojej vimrc należy znaleźć, że wpisanie mCC
następnie CTRL-L spowoduje oczekiwaną wymianę. Jeśli nie zostanie znalezione pasujące rozszerzenie, skrót pozostaje niezmieniony.
Kod nie jest wodoszczelny, ale działa we wszystkich prostych przypadkach, które testowałem. Mam nadzieję, że to pomoże. Daj mi znać, jeśli coś potrzebuje wyjaśnienia.
Istnieje wtyczka do tego w Vimie o nazwie vim-abolish. Użyj mapy crc
, aby rozwinąć do wielbłąda.
- 1. IntelliJ IDEA - Nowy szablon
- 2. Pokaż linię wcięcia w IntellIJ IDEA
- 3. Jak mogę zaktualizować IntelliJ IDEA?
- 4. Konfigurowanie JMonkeyEngine w Intellij IDEA
- 5. Jak określić nazwę prototypu definicji kroku w Intellij Idea?
- 6. ustawienia Ruby w IntelliJ IDEA
- 7. IntelliJ Idea wygenerowane źródło
- 8. IntelliJ IDEA: Przenieś linię?
- 9. Jak skonfigurować javacc w intellij IDEA
- 10. Jak usunąć projekty w Intellij IDEA 14?
- 11. Jak znaleźć konkretny plik w IntelliJ IDEA?
- 12. Jak uruchomić Akka aktorów w IntelliJ IDEA
- 13. Jak zamówić moduły w intellij-idea?
- 14. Jak skonfigurować Switcher w Intellij IDEA 10
- 15. Jak sprawdzić żądanie ściągnięcia w IntelliJ IDEA?
- 16. Jak debugować aplikację skalatra w IntelliJ Idea?
- 17. Jak wyłączyć pomoc w IntelliJ Idea?
- 18. Jak zmienić repozytorium GitHub w IDEA Intellij?
- 19. Jak wyświetlić JavaDoc w IntelliJ IDEA?
- 20. Wyjątek ClassNotFoundException w IntelliJ IDEA
- 21. Węgierska notacja w Intellij IDEA
- 22. IntelliJ IDEA thymeleaf wspierać
- 23. IntelliJ IDEA - daszek zachowanie
- 24. IntelliJ IDEA Checkstyle
- 25. TestNG z IntelliJ IDEA: Jak korzystać z pliku testng.xml w IntelliJ IDEA 9
- 26. IntelliJ IDEA backspace i wcięcie?
- 27. Intellij IDEA custom Auto-Completion
- 28. Intellij IDEA nie może cofnąć
- 29. Intellij IDEA - Jak wyłączyć automatyczną aktualizację wtyczki
- 30. Jak importować projekty Eclipse do IntelliJ IDEA?
Amazing! To wszystko co mogę powiedzieć. Nadal jestem chciwy/leniwy, żeby prosić o więcej. Jeśli istnieje więcej niż jedno możliwe rozwinięcie: np. myCamelCase myCamelCart, wybrana jest ostatnia. Zamiast tego, czy można go zachować tak, jak w przypadku vima, jak kończenie słowa kluczowego Ctrl-P? Ponownie, niesamowite! – dharm0us
Cieszę się, że zadziałało! Obsługa wielokrotnych dopasowań powinna być kwestią uzyskania Expand_Camel_Initials() w celu zwrócenia listy rozwiązań, a następnie ustawienia 'completefunc', aby umożliwić ci wybór pomiędzy. Spróbuję obejrzeć to jeszcze w tym tygodniu. –
Dobra, to nie było tak bolesne, jak myślałem ... Poprawiłem odpowiedź i teraz powinno działać tak, jak sobie życzysz. Daj mi znać, jeśli masz jakiekolwiek problemy (nie miałem okazji przetestować go prawidłowo). –