1

在 Vim 中编辑默认 Django 设置文件以使用 SQLite 的最有效方法(即最少的击键次数)是什么?

裸设置文件如下所示:

# Django settings for mysite project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
...

...我希望它看起来像这样:

# Django settings for mysite project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'local.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
...

我知道这是一个微不足道的问题,但我正在努力提高 Vim 的效率,所以我很好奇其他人是否有更快的方法来完成这项重复性任务。

4

1 回答 1

3

我确信这不会赢得Vim Golf,但这就是我的做法。以正常模式启动:

:%s/backends./backends.sqlite3/ <Enter>
/NAME <Enter>
2f'
i local.db

即:搜索后端。通过整个缓冲区,用 backends.sqlite3 替换第一个实例。然后,搜索 NAME 并将光标移动到找到的第一个实例。然后,在当前行向前搜索第二次出现的 '(单引号)。进入插入模式。输入 local.db

更新

为了最大限度地提高效率并使用评论中的建议,这里有一个稍微缩短的版本,仍然使用相同的方法:

:%s/ends./&sqlite3/ <Enter>
/NAM <Enter>
2f'
i local.db

我打算使用/NA,直到我注意到 MANAGER 出现在 NAME 之前。这种方法的 Vim Golf 得分:38。

于 2012-04-27T03:36:36.643 回答