Как я могу добавить строку в конец каждой строки в Vim?

Вам нужно привести данные так, чтобы компилятор знал, где найти элементы структуры, вот полный пример:

#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

typedef struct s_list
{
    void          *content;
    size_t         content_size;
    struct s_list *next;
}t_list;

typedef struct s_entry
{
    char       *filename;
    struct stat filestat;
}t_entry;

int main(void)
{
    t_list *foo = malloc(sizeof *foo);
    t_entry *bar = malloc(sizeof *bar);
    bar->filename = malloc(10);
    foo->content = bar;

    free(((t_entry *)foo->content)->filename);
    free(foo->content);
    free(foo);

    return 0;
}
245
задан Ionică Bizău 20 May 2013 в 03:59
поделиться

6 ответов

:%s/$/\*/g

должен работать. Так должен :%s/$/*/g как , MrWiggles указывает правильно.

337
ответ дан Community 23 November 2019 в 03:05
поделиться

Еще короче, чем: поисковая команда:

:%norm A*

Это - то, что это означает:

 %       = for every line
 norm    = type the following commands
 A*      = append '*' to the end of current line
332
ответ дан Nathan Fellman 23 November 2019 в 03:05
поделиться

Также:

:g/$/norm A*

Также:

gg<Ctrl-v>G$A*<Esc>
42
ответ дан Brian Carper 23 November 2019 в 03:05
поделиться

Одна опция:

:g/$/s//*

Это найдет каждую привязку к концу строки и заменит ею с *. Я говорю "замену", но на самом деле это - больше добавления, так как привязка является специальной вещью, а не регулярным символом. Для получения дополнительной информации см. Питание g - Примеры .

5
ответ дан paxdiablo 23 November 2019 в 03:05
поделиться
:%s/\n/*\r/g

Ваш первый корректен где-либо еще, но Vim должен иметь другую новую строку, обрабатывающую по некоторым причинам.

3
ответ дан 23 November 2019 в 03:05
поделиться
%s/\s*$/\*/g

это добьется цели и гарантирует, что ведущие пробелы проигнорированы.

1
ответ дан Conner 23 November 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: