удалите слово после или вокруг курсора в VIM

Вам необходимо сохранить корневой узел. В вашем примере выведите переменную jsonNode. Ниже пример делает то же самое:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.File;

public class Json {

    public static void main(String[] args) throws Exception {
        File jsonFile = new File("test.json");

        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);

        ObjectNode root = (ObjectNode) mapper.readTree(jsonFile);

        // create new node item
        ObjectNode newNode = new ObjectNode(mapper.getNodeFactory());
        newNode.put("data1", 3);
        newNode.put("data2", "DATA3");

        // create new class item
        FirstItem newItem = new FirstItem(4, "DATA4");

        // get array node
        ArrayNode firstArray = (ArrayNode) root.get("firstArray");

        // add new ObjectNode
        firstArray.add(newNode);

        // add new POJO
        firstArray.add(mapper.convertValue(newItem, JsonNode.class));

        // serialise root
        System.out.println(mapper.writeValueAsString(root));
    }
}

class FirstItem {

    private int data1;
    private String data2;

    public FirstItem(int data1, String data2) {
        this.data1 = data1;
        this.data2 = data2;
    }

    public int getData1() {
        return data1;
    }

    public String getData2() {
        return data2;
    }
} 

Над кодом печатается:

{
  "firstArray" : [ {
    "data1" : 1,
    "data2" : "DATA"
  }, {
    "data1" : 2,
    "data2" : "DATA2"
  }, {
    "data1" : 3,
    "data2" : "DATA3"
  }, {
    "data1" : 4,
    "data2" : "DATA4"
  } ],
  "secondArray" : [ {
    "number" : 1,
    "data" : "DATA3"
  }, {
    "number" : 2,
    "data" : "DATA4"
  } ],
  "thirdArray" : [ {
    "something" : 1,
    "thatthing" : "DATA5"
  }, {
    "something" : 2,
    "thatthing" : "DATA6"
  } ]
}
198
задан Miraj50 19 January 2019 в 05:35
поделиться

9 ответов

What you should do is create an imap of a certain key to a series of commands, in this case the commands will drop you into normal mode, delete the current word and then put you back in insert:

:imap <C-d> <C-[>diwi
74
ответ дан 23 November 2019 в 05:10
поделиться

Не совсем уверен, что вы использовали «до» и «после», но вы пробовали

dw

?

Редактировать: Я думаю, вы ищете что-то, чтобы использовать в режиме вставки , Как ни странно, в документах ничего не найдено, кажется, что ctrl-w - это все, что есть.

2
ответ дан 23 November 2019 в 05:10
поделиться

Для удаления определенного количества символов перед курсором вы можете использовать X. Для удаления определенного количества слов после курсора вы можете использовать dw (несколько слов например, можно удалить, используя 3dw для 3 слов). Для удаления вокруг курсора в целом, вы можете использовать галку.

2
ответ дан 23 November 2019 в 05:10
поделиться

Вы имеете в виду как?

dw
42
ответ дан 23 November 2019 в 05:10
поделиться

Нижеследующее работает для нормального режима: Я согласен с ответом Дэна Олсона, что вы, вероятно, должны быть в нормальный режим для большинства удалений. Более подробно ниже.

Если курсор находится внутри слова:
diw для удаления в слове (без пробелов)
daw для удаления вокруг слова (включая пробелы перед следующее слово).

Если курсор находится в начале слова, просто нажмите dw .

Это можно умножить, добавив обычные числа для движения, например, 2w для перемещения вперед 2 словами, поэтому d2w удаляет два слова.

Режим вставки ^ w
Идея использования hjkl для перемещения в Vim состоит в том, что более продуктивно держать руки на домашнем ряду. В конце слова ^ отлично работает, чтобы быстро удалить слово. Если ты' Если вы находитесь в обычном режиме и хотите изменить слово, вы можете просто использовать c (изменить), а не d (удалить), если вы хотите полностью изменить слово и снова войдите в режим вставки, не нажимая i , чтобы вернуться к печати. ​​

66
ответ дан 23 November 2019 в 05:10
поделиться

Нормальный режим:

daw : delete the word under the cursor    
caw : delete the word under the cursor and put you in insert mode 
513
ответ дан 23 November 2019 в 05:10
поделиться

Не похоже, что есть встроенный способ сделать это в режиме вставки, о чем был вопрос. Некоторые из других ответов верны для нормального режима, а также указывают на то, что можно создать настраиваемое сопоставление для добавления функций в режиме вставки.

Честно говоря, вам, вероятно, следует выполнять большую часть удаления в обычном режиме. ^ W полезно знать, но я не уверен, что могу придумать ситуацию, когда я бы предпочел сделать это, чем esc, чтобы перейти в нормальный режим и иметь в своем распоряжении более мощные команды удаления.

Vim очень хорош этим отличается от ряда других редакторов (включая TextMate). Если вы используете его продуктивно, вы, вероятно, обнаружите, что не проводите много времени в режиме вставки.

20
ответ дан 23 November 2019 в 05:10
поделиться

В старом vi, b перемещает курсор в начало слова перед курсором, w перемещает курсор в начало слова после курсор, e перемещает курсор в конец слова после курсора, а dw удаляет от курсора до конца слова.

Если вы наберете wbdw ], вы удаляете слово вокруг курсора, даже если курсор находится в начале или в конце слова. Обратите внимание, что пробелы после слова считаются частью слова, которое необходимо удалить.

2
ответ дан 23 November 2019 в 05:10
поделиться

Принятый ответ завершается ошибкой при попытке повторить удаление слов попробуйте вместо этого следующее решение:

" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw

Он отображает CTRL-BackSpace, также работает в нормальном режиме.

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

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