Як я можу витягнути (скопіювати) єдиний символ, на якому лежить курсор?


49

Я знаю багато способів копіювання речей:

yiw= yank у поточному слові
yaw= yank all word (включає пробіл)
yy = yank поточного рядка
3yy= yank три рядки, починаючи з поточного
yap= yank весь абзац (включає проміжок нового рядка)

Я також можу видалити або змінити один символ:

x= видалити символ під курсором
r= замінити символ під курсором

Але як у світі ви просто копіюєте один курсор під курсор?

Моя мотивація полягає в тому, що я програмую в Perl 6, а деякі оператори є символами Unicode. Зараз я використовую код Perl 6 Config :: INI tadzik як вихідну точку для користувальницького аналізатора, наприклад, і я хотів би скопіювати саме цей французький символ цитати (гіпер оператор) з цього рядка :

my %hash = $<sections>».ast;

Я міг би використовувати два "символи" версії гіпер оператора >>, але я вважав, що це виглядає краще і менш неоднозначно, ніж >>>:

my %hash = $<sections>>>.ast;

введіть тут опис зображення
введіть тут опис зображення


1
Легко складіть операцію рухом, як зазвичай:yl
VanLaser

@VanLaser Хороша ідея! Я думав, що рух не буде працювати, тому що я хотів лише одного персонажа. Але ваша пропозиція чудово підходить для ASCII. Повідомте це як відповідь, і я проголосую за нього. Цікаво, що він не працює з цим символом Unicode, але ytX(" yank til X"), здається, працює, коли Xсимвол знаходиться праворуч.
Крістофер Ботс

Цікаво, це один символ, будь то Unicode, чи не є два символи, приховані / замінені за допомогою concealфункції Vim ?
VanLaser

@VanLaser Схоже на два "персонажі".
Крістофер Ботс

До речі, як ти познайомиш »персонажа?
VanLaser

Відповіді:


41

Твір операцію копіюєте з так часто використовується «один символ вправо» рух має працювати: yl.

BTW (прокоментувати коментар щодо ОП), для мене »можна постукати таким чином, в gVim або терміналі Vim. Можливо, проблема (кодування) файлу?


4
Янкі »працює і для мене добре. Я використовую, vyщоб потягнути один символ. Не впевнений, чому я це використовую, а не yl, можливо, колись у мене була свідома причина, але зараз це просто рефлекс.
jjaderberg

3
Я завжди y<space>думав, що це персонаж під курсором, і я збирався додати це як відповідь, але після перевірки допомоги я розумію, <space>і lце те саме.
Бретт Y

Це приємно, і, здавалося б, навіть простіше вдарити, за винятком, коли простір використовується як лідер.
VanLaser

1
@jjaderberg Мені подобається ваш коментар, будь ласка, опублікуйте його як відповідь. Дякую!
Крістофер Дно

1
@brettanomyces Мені подобається ваш коментар, будь ласка, опублікуйте його як відповідь. Дякую!
Крістофер Дно

14

Зазвичай я натискаю vy( візуально ), іноді xu( скасувати скасування ) теж. Крім того, якщо ви хочете витягнути char перед курсором, замість цього lvy, ви можете натиснути Xu, я думаю, це причина, чому я натискаю xuна поточний. :-)

Зауважте, що, Xuзмусить ваш курсор переміститися до цього знака.


Ви маєте на увазі hvy. Я спробував це відредагувати, але, очевидно, виправлення одного символу в команді vim не є суттєвою зміною, щоб бути прийнятною.
Шахбаз

9

Найпростіший спосіб, який я знаю, це зробити, це використовувати xдля видалення символу, який також поміщає його в буфер, а потім Pповернути його назад. Потім ви можете перемістити курсор навколо і вставити символ назад, куди вам потрібно p(після курсору) або P(перед курсором), доки ви не зміните буфер.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.