Vim入门(六):行的光标移动

更新

上一任务帖中,在行头和行尾插入行号的任务一般做法是:先使用 0 跳到行头,使用 i 执行向前插入;使用 $ 跳到行尾,使用 a 执行向后插入。新版的 VC 助手有个功能很实用,当你鼠标停留在某个单词

  • I 键。在行头插入,相当于 0 + i;
  • A 键。在行尾插入,相当于 $ + a;
  • # 键。自动寻找当前位置单词的匹配;
在当前行上移动光标
  • ^ 键。移到本行第一个非 Blank 字符。和 0 的区别体现在如果行首是空格、TAB之类的时候;
  • g_ 键。移到本行最后一个不是 Blank 字符的位置。与 $ 相对应;
  • fa 键。本行下一个为 a 的字符处;
  • Fa 键。本行上一个为 a 的字符处(与 f 方向相反);
  • ta 键。本行下一个为 a 的前一个字符处;
  • Ta 键。本行上一个为 a 的后一个字符处(与 t 方向相反);

t 与 d 结合使用有时候有很有效果的,例如:删除本行从这里开始的内容,直到遇到双引号 dt";双引号可以换成其他任意符号和字母,f 键也可以这么用,区别在于 f 所指定的符号也将被删去,而 t 指定的不会(因为它只停留在符号前)。

任务帖
  1. 从 ^ 的位置删除到空格为止(df + 空格);
  2. 删除括号内空(找到括号内第一个字母,dt ));
  3. 进行10处删除,至任意字母为止;
附录
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "app/menus/menu_model.h"

namespace menus {

bool MenuModel::IsVisibleAt(int index) const {
  return true;
}

bool MenuModel::GetModelAndIndexForCommandId(int command_id,
                                             MenuModel** model, int* index) {
  int item_count = (*model)->GetItemCount();
  for (int i = 0; i < item_count; ++i) {
    if ((*model)->GetTypeAt(i) == TYPE_SUBMENU) {
      MenuModel* submenu_model = (*model)->GetSubmenuModelAt(i);
      if (GetModelAndIndexForCommandId(command_id, &submenu_model, index)) {
        *model = submenu_model;
        return true;
      }
    }
    if ((*model)->GetCommandIdAt(i) == command_id) {
      *index = i;
      return true;
    }
  }
  return false;
}

// Default implementation ignores the disposition.
void MenuModel::ActivatedAtWithDisposition(int index, int disposition) {
  ActivatedAt(index);
}

}  // namespac
注:Chrome 代码片段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值