在Vim中编辑Django设置文件的最有效方法

时间:2012-04-27 03:24:40

标签: django sqlite vim

在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的效率,所以我很好奇其他人是否有更快的方法来处理这个重复的任务。

1 个答案:

答案 0 :(得分:2)

我确信这不会赢得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直到我注意到在NAME之前出现了MANAGER。这种方法的Vim Golf得分:38。