├── .gitignore ├── .powenv.sample ├── .rspec ├── .ruby-version ├── .travis.yml ├── Gemfile ├── Gemfile.lock ├── Procfile ├── README.md ├── README.zh-TW.md ├── Rakefile ├── app ├── assets │ ├── config │ │ └── manifest.js │ ├── images │ │ └── rails.png │ ├── javascripts │ │ └── application.js │ └── stylesheets │ │ ├── application.css │ │ └── static.scss ├── controllers │ ├── application_controller.rb │ └── vim_command_controller.rb ├── helpers │ ├── application_helper.rb │ └── vim_command_helper.rb ├── mailers │ └── .gitkeep ├── models │ ├── .gitkeep │ └── vim_command.rb └── views │ ├── layouts │ └── application.html.haml │ └── vim_command │ └── index.html.haml ├── bin ├── bundle ├── rails ├── rake ├── setup ├── update └── yarn ├── config.ru ├── config ├── application.rb ├── boot.rb ├── cable.yml ├── database.yml.travis ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── application_controller_renderer.rb │ ├── assets.rb │ ├── backtrace_silencers.rb │ ├── config.rb │ ├── content_security_policy.rb │ ├── cookies_serializer.rb │ ├── filter_parameter_logging.rb │ ├── generators.rb │ ├── inflections.rb │ ├── mime_types.rb │ ├── permissions_policy.rb │ ├── secret_token.rb │ ├── session_store.rb │ └── wrap_parameters.rb ├── locales │ ├── en.bootstrap.yml │ └── en.yml ├── puma.rb ├── routes.rb ├── secrets.yml ├── settings.yml ├── settings │ ├── development.yml │ ├── production.yml │ ├── staging.yml │ └── test.yml ├── spring.rb └── storage.yml ├── doc ├── README_FOR_APP └── csv │ ├── cn.csv │ ├── en.csv │ ├── jp.csv │ └── tw.csv ├── lib ├── assets │ └── .gitkeep └── tasks │ ├── .gitkeep │ └── cron.rake ├── log └── .gitkeep ├── public ├── 404.html ├── 422.html ├── 500.html ├── favicon.ico └── robots.txt ├── script ├── format.rb └── rails ├── spec ├── features │ └── web_pages_spec.rb ├── models │ └── vim_command_spec.rb └── spec_helper.rb └── vendor ├── assets ├── javascripts │ └── .gitkeep └── stylesheets │ └── .gitkeep └── plugins └── .gitkeep /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | # 3 | # If you find yourself ignoring temporary files generated by your text editor 4 | # or operating system, you probably want to add a global ignore instead: 5 | # git config --global core.excludesfile ~/.gitignore_global 6 | 7 | # Ignore bundler config 8 | /.bundle 9 | 10 | # Ignore the default SQLite database. 11 | /db/*.sqlite3 12 | 13 | # Ignore all logfiles and tempfiles. 14 | /log/*.log 15 | /tmp 16 | .env 17 | 18 | .powenv 19 | /config/heroku.yml 20 | config/settings.local.yml 21 | config/settings/*.local.yml 22 | config/environments/*.local.yml 23 | -------------------------------------------------------------------------------- /.powenv.sample: -------------------------------------------------------------------------------- 1 | export twitter_consumer_key_jp=(please set) 2 | export twitter_consumer_secret_jp=(please set) 3 | export twitter_oauth_token_jp=(please set) 4 | export twitter_oauth_token_secret_jp=(please set) 5 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --colour 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.1.2 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 3.0.0 4 | cache: bundler 5 | bundler_args: --without production --deployment 6 | addons: 7 | postgresql: "9.3" 8 | before_install: 9 | - gem install bundler --pre 10 | before_script: 11 | - psql -c 'create database travis_ci_test;' -U postgres 12 | - cp config/database.yml.travis config/database.yml 13 | script: bundle exec rspec 14 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 | 4 | ruby '3.1.2' 5 | 6 | gem 'rails', '7.0.4' 7 | gem 'puma' 8 | gem 'sass-rails' 9 | gem 'uglifier', '>= 1.3.0' 10 | 11 | gem 'coffee-rails' 12 | gem 'turbolinks', '~> 5' 13 | gem 'jbuilder', '~> 2.7' 14 | 15 | group :development, :test do 16 | gem 'rspec-rails' 17 | end 18 | 19 | group :development do 20 | gem 'web-console', '>= 4.1.0' 21 | gem 'rack-mini-profiler', '~> 2.0' 22 | gem 'listen', '~> 3.3' 23 | gem 'spring' 24 | end 25 | 26 | group :test do 27 | gem 'capybara' 28 | gem 'selenium-webdriver' 29 | end 30 | 31 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 32 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 33 | 34 | gem 'twitter' 35 | gem 'haml-rails' 36 | gem 'jquery-rails' 37 | 38 | gem 'config' 39 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | actioncable (7.0.4) 5 | actionpack (= 7.0.4) 6 | activesupport (= 7.0.4) 7 | nio4r (~> 2.0) 8 | websocket-driver (>= 0.6.1) 9 | actionmailbox (7.0.4) 10 | actionpack (= 7.0.4) 11 | activejob (= 7.0.4) 12 | activerecord (= 7.0.4) 13 | activestorage (= 7.0.4) 14 | activesupport (= 7.0.4) 15 | mail (>= 2.7.1) 16 | net-imap 17 | net-pop 18 | net-smtp 19 | actionmailer (7.0.4) 20 | actionpack (= 7.0.4) 21 | actionview (= 7.0.4) 22 | activejob (= 7.0.4) 23 | activesupport (= 7.0.4) 24 | mail (~> 2.5, >= 2.5.4) 25 | net-imap 26 | net-pop 27 | net-smtp 28 | rails-dom-testing (~> 2.0) 29 | actionpack (7.0.4) 30 | actionview (= 7.0.4) 31 | activesupport (= 7.0.4) 32 | rack (~> 2.0, >= 2.2.0) 33 | rack-test (>= 0.6.3) 34 | rails-dom-testing (~> 2.0) 35 | rails-html-sanitizer (~> 1.0, >= 1.2.0) 36 | actiontext (7.0.4) 37 | actionpack (= 7.0.4) 38 | activerecord (= 7.0.4) 39 | activestorage (= 7.0.4) 40 | activesupport (= 7.0.4) 41 | globalid (>= 0.6.0) 42 | nokogiri (>= 1.8.5) 43 | actionview (7.0.4) 44 | activesupport (= 7.0.4) 45 | builder (~> 3.1) 46 | erubi (~> 1.4) 47 | rails-dom-testing (~> 2.0) 48 | rails-html-sanitizer (~> 1.1, >= 1.2.0) 49 | activejob (7.0.4) 50 | activesupport (= 7.0.4) 51 | globalid (>= 0.3.6) 52 | activemodel (7.0.4) 53 | activesupport (= 7.0.4) 54 | activerecord (7.0.4) 55 | activemodel (= 7.0.4) 56 | activesupport (= 7.0.4) 57 | activestorage (7.0.4) 58 | actionpack (= 7.0.4) 59 | activejob (= 7.0.4) 60 | activerecord (= 7.0.4) 61 | activesupport (= 7.0.4) 62 | marcel (~> 1.0) 63 | mini_mime (>= 1.1.0) 64 | activesupport (7.0.4) 65 | concurrent-ruby (~> 1.0, >= 1.0.2) 66 | i18n (>= 1.6, < 2) 67 | minitest (>= 5.1) 68 | tzinfo (~> 2.0) 69 | addressable (2.8.1) 70 | public_suffix (>= 2.0.2, < 6.0) 71 | bindex (0.8.1) 72 | buftok (0.2.0) 73 | builder (3.2.4) 74 | capybara (3.37.1) 75 | addressable 76 | matrix 77 | mini_mime (>= 0.1.3) 78 | nokogiri (~> 1.8) 79 | rack (>= 1.6.0) 80 | rack-test (>= 0.6.3) 81 | regexp_parser (>= 1.5, < 3.0) 82 | xpath (~> 3.2) 83 | childprocess (4.1.0) 84 | coffee-rails (5.0.0) 85 | coffee-script (>= 2.2.0) 86 | railties (>= 5.2.0) 87 | coffee-script (2.4.1) 88 | coffee-script-source 89 | execjs 90 | coffee-script-source (1.12.2) 91 | concurrent-ruby (1.1.10) 92 | config (4.0.0) 93 | deep_merge (~> 1.2, >= 1.2.1) 94 | dry-validation (~> 1.0, >= 1.0.0) 95 | crass (1.0.6) 96 | deep_merge (1.2.2) 97 | diff-lcs (1.5.0) 98 | domain_name (0.5.20190701) 99 | unf (>= 0.0.5, < 1.0.0) 100 | dry-configurable (0.16.1) 101 | dry-core (~> 0.6) 102 | zeitwerk (~> 2.6) 103 | dry-container (0.11.0) 104 | concurrent-ruby (~> 1.0) 105 | dry-core (0.9.1) 106 | concurrent-ruby (~> 1.0) 107 | zeitwerk (~> 2.6) 108 | dry-inflector (0.3.0) 109 | dry-initializer (3.1.1) 110 | dry-logic (1.3.0) 111 | concurrent-ruby (~> 1.0) 112 | dry-core (~> 0.9, >= 0.9) 113 | zeitwerk (~> 2.6) 114 | dry-schema (1.11.3) 115 | concurrent-ruby (~> 1.0) 116 | dry-configurable (~> 0.16, >= 0.16) 117 | dry-core (~> 0.9, >= 0.9) 118 | dry-initializer (~> 3.0) 119 | dry-logic (~> 1.3) 120 | dry-types (~> 1.6) 121 | zeitwerk (~> 2.6) 122 | dry-types (1.6.1) 123 | concurrent-ruby (~> 1.0) 124 | dry-container (~> 0.3) 125 | dry-core (~> 0.9, >= 0.9) 126 | dry-inflector (~> 0.1, >= 0.1.2) 127 | dry-logic (~> 1.3, >= 1.3) 128 | zeitwerk (~> 2.6) 129 | dry-validation (1.9.0) 130 | concurrent-ruby (~> 1.0) 131 | dry-container (~> 0.7, >= 0.7.1) 132 | dry-core (~> 0.9, >= 0.9) 133 | dry-initializer (~> 3.0) 134 | dry-schema (~> 1.11, >= 1.11.0) 135 | zeitwerk (~> 2.6) 136 | equalizer (0.0.11) 137 | erubi (1.11.0) 138 | execjs (2.8.1) 139 | ffi (1.15.5) 140 | ffi-compiler (1.0.1) 141 | ffi (>= 1.0.0) 142 | rake 143 | globalid (1.0.0) 144 | activesupport (>= 5.0) 145 | haml (6.0.8) 146 | temple (>= 0.8.2) 147 | thor 148 | tilt 149 | haml-rails (2.1.0) 150 | actionpack (>= 5.1) 151 | activesupport (>= 5.1) 152 | haml (>= 4.0.6) 153 | railties (>= 5.1) 154 | http (4.4.1) 155 | addressable (~> 2.3) 156 | http-cookie (~> 1.0) 157 | http-form_data (~> 2.2) 158 | http-parser (~> 1.2.0) 159 | http-cookie (1.0.5) 160 | domain_name (~> 0.5) 161 | http-form_data (2.3.0) 162 | http-parser (1.2.3) 163 | ffi-compiler (>= 1.0, < 2.0) 164 | http_parser.rb (0.6.0) 165 | i18n (1.12.0) 166 | concurrent-ruby (~> 1.0) 167 | jbuilder (2.11.5) 168 | actionview (>= 5.0.0) 169 | activesupport (>= 5.0.0) 170 | jquery-rails (4.5.0) 171 | rails-dom-testing (>= 1, < 3) 172 | railties (>= 4.2.0) 173 | thor (>= 0.14, < 2.0) 174 | listen (3.7.1) 175 | rb-fsevent (~> 0.10, >= 0.10.3) 176 | rb-inotify (~> 0.9, >= 0.9.10) 177 | loofah (2.19.0) 178 | crass (~> 1.0.2) 179 | nokogiri (>= 1.5.9) 180 | mail (2.7.1) 181 | mini_mime (>= 0.1.1) 182 | marcel (1.0.2) 183 | matrix (0.4.2) 184 | memoizable (0.4.2) 185 | thread_safe (~> 0.3, >= 0.3.1) 186 | method_source (1.0.0) 187 | mini_mime (1.1.2) 188 | mini_portile2 (2.8.0) 189 | minitest (5.16.3) 190 | multipart-post (2.2.3) 191 | naught (1.1.0) 192 | net-imap (0.3.1) 193 | net-protocol 194 | net-pop (0.1.2) 195 | net-protocol 196 | net-protocol (0.1.3) 197 | timeout 198 | net-smtp (0.3.2) 199 | net-protocol 200 | nio4r (2.5.8) 201 | nokogiri (1.13.9) 202 | mini_portile2 (~> 2.8.0) 203 | racc (~> 1.4) 204 | public_suffix (5.0.0) 205 | puma (6.0.0) 206 | nio4r (~> 2.0) 207 | racc (1.6.0) 208 | rack (2.2.4) 209 | rack-mini-profiler (2.3.4) 210 | rack (>= 1.2.0) 211 | rack-test (2.0.2) 212 | rack (>= 1.3) 213 | rails (7.0.4) 214 | actioncable (= 7.0.4) 215 | actionmailbox (= 7.0.4) 216 | actionmailer (= 7.0.4) 217 | actionpack (= 7.0.4) 218 | actiontext (= 7.0.4) 219 | actionview (= 7.0.4) 220 | activejob (= 7.0.4) 221 | activemodel (= 7.0.4) 222 | activerecord (= 7.0.4) 223 | activestorage (= 7.0.4) 224 | activesupport (= 7.0.4) 225 | bundler (>= 1.15.0) 226 | railties (= 7.0.4) 227 | rails-dom-testing (2.0.3) 228 | activesupport (>= 4.2.0) 229 | nokogiri (>= 1.6) 230 | rails-html-sanitizer (1.4.3) 231 | loofah (~> 2.3) 232 | railties (7.0.4) 233 | actionpack (= 7.0.4) 234 | activesupport (= 7.0.4) 235 | method_source 236 | rake (>= 12.2) 237 | thor (~> 1.0) 238 | zeitwerk (~> 2.5) 239 | rake (13.0.6) 240 | rb-fsevent (0.11.2) 241 | rb-inotify (0.10.1) 242 | ffi (~> 1.0) 243 | regexp_parser (2.6.0) 244 | rexml (3.2.5) 245 | rspec-core (3.12.0) 246 | rspec-support (~> 3.12.0) 247 | rspec-expectations (3.12.0) 248 | diff-lcs (>= 1.2.0, < 2.0) 249 | rspec-support (~> 3.12.0) 250 | rspec-mocks (3.12.0) 251 | diff-lcs (>= 1.2.0, < 2.0) 252 | rspec-support (~> 3.12.0) 253 | rspec-rails (6.0.1) 254 | actionpack (>= 6.1) 255 | activesupport (>= 6.1) 256 | railties (>= 6.1) 257 | rspec-core (~> 3.11) 258 | rspec-expectations (~> 3.11) 259 | rspec-mocks (~> 3.11) 260 | rspec-support (~> 3.11) 261 | rspec-support (3.12.0) 262 | rubyzip (2.3.2) 263 | sass-rails (6.0.0) 264 | sassc-rails (~> 2.1, >= 2.1.1) 265 | sassc (2.4.0) 266 | ffi (~> 1.9) 267 | sassc-rails (2.1.2) 268 | railties (>= 4.0.0) 269 | sassc (>= 2.0) 270 | sprockets (> 3.0) 271 | sprockets-rails 272 | tilt 273 | selenium-webdriver (4.5.0) 274 | childprocess (>= 0.5, < 5.0) 275 | rexml (~> 3.2, >= 3.2.5) 276 | rubyzip (>= 1.2.2, < 3.0) 277 | websocket (~> 1.0) 278 | simple_oauth (0.3.1) 279 | spring (4.1.0) 280 | sprockets (4.1.1) 281 | concurrent-ruby (~> 1.0) 282 | rack (> 1, < 3) 283 | sprockets-rails (3.4.2) 284 | actionpack (>= 5.2) 285 | activesupport (>= 5.2) 286 | sprockets (>= 3.0.0) 287 | temple (0.9.1) 288 | thor (1.2.1) 289 | thread_safe (0.3.6) 290 | tilt (2.0.11) 291 | timeout (0.3.0) 292 | turbolinks (5.2.1) 293 | turbolinks-source (~> 5.2) 294 | turbolinks-source (5.2.0) 295 | twitter (7.0.0) 296 | addressable (~> 2.3) 297 | buftok (~> 0.2.0) 298 | equalizer (~> 0.0.11) 299 | http (~> 4.0) 300 | http-form_data (~> 2.0) 301 | http_parser.rb (~> 0.6.0) 302 | memoizable (~> 0.4.0) 303 | multipart-post (~> 2.0) 304 | naught (~> 1.0) 305 | simple_oauth (~> 0.3.0) 306 | tzinfo (2.0.5) 307 | concurrent-ruby (~> 1.0) 308 | uglifier (4.2.0) 309 | execjs (>= 0.3.0, < 3) 310 | unf (0.1.4) 311 | unf_ext 312 | unf_ext (0.0.8.2) 313 | web-console (4.2.0) 314 | actionview (>= 6.0.0) 315 | activemodel (>= 6.0.0) 316 | bindex (>= 0.4.0) 317 | railties (>= 6.0.0) 318 | websocket (1.2.9) 319 | websocket-driver (0.7.5) 320 | websocket-extensions (>= 0.1.0) 321 | websocket-extensions (0.1.5) 322 | xpath (3.2.0) 323 | nokogiri (~> 1.8) 324 | zeitwerk (2.6.1) 325 | 326 | PLATFORMS 327 | ruby 328 | 329 | DEPENDENCIES 330 | capybara 331 | coffee-rails 332 | config 333 | haml-rails 334 | jbuilder (~> 2.7) 335 | jquery-rails 336 | listen (~> 3.3) 337 | puma 338 | rack-mini-profiler (~> 2.0) 339 | rails (= 7.0.4) 340 | rspec-rails 341 | sass-rails 342 | selenium-webdriver 343 | spring 344 | turbolinks (~> 5) 345 | twitter 346 | tzinfo-data 347 | uglifier (>= 1.3.0) 348 | web-console (>= 4.1.0) 349 | 350 | RUBY VERSION 351 | ruby 3.1.2p20 352 | 353 | BUNDLED WITH 354 | 2.3.24 355 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: bundle exec puma -C config/puma.rb -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/JunichiIto/be_vimmer.svg?branch=master)](https://travis-ci.org/JunichiIto/be_vimmer) 2 | 3 | ## About Be Vimmer 4 | 5 | Be Vimmer is an application that tweets Vim commands and their description periodically in Japanese, English and Chinese(cn & tw). This application was created in order to help Vim learners. 6 | 7 | 8 | Vim documentation has to be stored in database in advance. (See `db/seeds.rb` or `lib/tasks` ) 9 | 10 | 11 | Tweets are pushed via cron task on server.(See `lib/tasks/cron.rb` ) You need to register Twitter credentials in environment variables (for local `config/settings.local.yml`) before execution. 12 | 13 | 14 | The Web UI just display the Vim command list and the basic information about this application. 15 | 16 | 17 | ### Cron task and arguments 18 | 19 | The following command means "Post 3 tweets every 2 hours in Japanese. EX commands appear every 6 hours." 20 | 21 | 22 | rake 'cron[jp,2,3,6]' 23 | 24 | 25 | "en" is English, "cn" is Chinese(cn) and "tw" is Chinese(tw). 26 | 27 | 28 | ### How to get OAuth token 29 | 30 | Use this => https://github.com/jugyo/get-twitter-oauth-token -------------------------------------------------------------------------------- /README.zh-TW.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/JunichiIto/be_vimmer.svg?branch=master)](https://travis-ci.org/JunichiIto/be_vimmer) 2 | 3 | ## 關於 Be Vimmer 4 | 5 | Be Vimmer 是一個可定期在 Twitter 上發佈 Vim 指令及相關敘述 (日文、英文、簡體中文及繁體中文) 的應用程式,以於幫助 Vim 初學者。 6 | 7 | 8 | Vim 文件必須先儲存在資料庫中。(詳見 `db/seeds.rb` 或 `lib/tasks`) 9 | 10 | 11 | 推文將會在 server 上以 cron 任務的方式進行發佈。 (詳見 `lib/tasks/cron.rb`) 在執行此應用程式前,使用者需先將註冊的推特 (Twitter) 資訊設定在環境變數中。 12 | 13 | 14 | 網路介面將會顯示 Vim 指令清單及此應用程式相關訊息。 15 | 16 | 17 | ### Cron 任務與參數設定 18 | 19 | 下列指令說明:每隔兩小時以日文發佈三則推文。EX 指令每六小時出現一次。 20 | 21 | 22 | rake cron["jp","2","3","6"] 23 | 24 | 25 | 「en」即英文,「cn」表示簡體中文,而「tw」表示繁體中文。 26 | 27 | 28 | ### 如何取得 OAuth token 29 | 30 | 請參考 => https://github.com/jugyo/get-twitter-oauth-token 31 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env rake 2 | # Add your own tasks in files placed in lib/tasks ending in .rake, 3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 4 | 5 | require File.expand_path('../config/application', __FILE__) 6 | 7 | BeVimmer::Application.load_tasks 8 | -------------------------------------------------------------------------------- /app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../images 2 | //= link_directory ../javascripts .js 3 | //= link_directory ../stylesheets .css 4 | -------------------------------------------------------------------------------- /app/assets/images/rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/app/assets/images/rails.png -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | //= require jquery 2 | //= require jquery_ujs 3 | //= require_self 4 | //= require_tree . 5 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This is a manifest file that'll be compiled into application.css, which will include all the files 3 | * listed below. 4 | * 5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 6 | * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 7 | * 8 | * You're free to add application-wide styles to this file and they'll appear at the top of the 9 | * compiled file, but it's generally better to create a new file per style scope. 10 | * 11 | *= require_self 12 | *= require_tree . 13 | */ 14 | -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | protect_from_forgery 3 | end 4 | -------------------------------------------------------------------------------- /app/controllers/vim_command_controller.rb: -------------------------------------------------------------------------------- 1 | class VimCommandController < ApplicationController 2 | def index 3 | lang = params[:lang].presence || 'jp' 4 | @vim_commands = VimCommand.load_from_csv(lang) 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/vim_command_helper.rb: -------------------------------------------------------------------------------- 1 | module VimCommandHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/mailers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/app/mailers/.gitkeep -------------------------------------------------------------------------------- /app/models/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/app/models/.gitkeep -------------------------------------------------------------------------------- /app/models/vim_command.rb: -------------------------------------------------------------------------------- 1 | require 'csv' 2 | require 'twitter' 3 | 4 | class VimCommand 5 | include ActiveModel::Model 6 | include ActiveModel::Attributes 7 | include ActiveModel::Validations 8 | include ActiveModel::Validations::Callbacks 9 | 10 | attribute :mode, :string 11 | attribute :language, :string 12 | attribute :command, :string 13 | attribute :description, :string 14 | 15 | LANGUAGES = %w(cn en jp tw).freeze 16 | 17 | class << self 18 | def load_from_csv(lang) 19 | return [] unless LANGUAGES.include?(lang) 20 | path = Rails.root.join("doc/csv/#{lang}.csv") 21 | CSV.foreach(path, headers: true).map do |row| 22 | params = { 23 | mode: row['mode'], 24 | language: row['language'], 25 | command: row['command'], 26 | description: row['description'], 27 | } 28 | new(params) 29 | end 30 | end 31 | 32 | def update_tweets(lang, skip_interval, tweets_per_exec, ex_show_interval) 33 | if execute_this_time? skip_interval.to_i 34 | execute lang, tweets_per_exec.to_i, ex_show_interval.to_i 35 | else 36 | puts "Skip this time" 37 | end 38 | end 39 | 40 | private 41 | 42 | def execute_this_time?(skip_interval) 43 | Time.now.hour % skip_interval == 0 44 | end 45 | 46 | def show_ex_command?(ex_show_interval) 47 | Time.now.hour % ex_show_interval == 0 48 | end 49 | 50 | def execute(lang, tweets_per_exec, ex_show_interval) 51 | commands = show_ex_command?(ex_show_interval) ? all_commands(lang) : non_ex_commands(lang) 52 | commands.sample(tweets_per_exec).each do |command| 53 | tweet = build_tweet command 54 | post tweet, lang 55 | end 56 | end 57 | 58 | def all_commands(lang) 59 | load_from_csv(lang) 60 | end 61 | 62 | def non_ex_commands(lang) 63 | load_from_csv(lang).reject { |record| record.mode.start_with?('EX') } 64 | end 65 | 66 | def build_tweet(command) 67 | tweet = "#{command.command} → #{command.description} [#{command.mode}]" 68 | max_length = command.language == 'en' ? 280 : 140 69 | length = max_length - " #Vim".size - 1 70 | tweet.truncate(length) + " #Vim" 71 | end 72 | 73 | def post(tweet, lang) 74 | puts tweet 75 | begin 76 | twitter_client(lang).update tweet.chomp 77 | rescue => ex 78 | p ex 79 | puts ex.backtrace.join("\n") 80 | end 81 | end 82 | 83 | def twitter_client(lang) 84 | params = { 85 | consumer_key: Settings["twitter_consumer_key_#{lang}"], 86 | consumer_secret: Settings["twitter_consumer_secret_#{lang}"], 87 | access_token: Settings["twitter_oauth_token_#{lang}"], 88 | access_token_secret: Settings["twitter_oauth_token_secret_#{lang}"] 89 | } 90 | 91 | raise "Please check env values or settings.local.yml!" if params.values.any?(&:nil?) 92 | 93 | Twitter::REST::Client.new(params) 94 | end 95 | end 96 | end 97 | -------------------------------------------------------------------------------- /app/views/layouts/application.html.haml: -------------------------------------------------------------------------------- 1 | !!! 5 2 | %html(lang="en") 3 | %head 4 | %meta(charset="utf-8") 5 | %meta(http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1") 6 | %meta(name="viewport" content="width=device-width, initial-scale=1.0") 7 | %title= content_for?(:title) ? yield(:title) : "Be Vimmer" 8 | = csrf_meta_tags 9 | = stylesheet_link_tag "application", :media => "all" 10 | = favicon_link_tag '/favicon.ico', :rel => 'shortcut icon' 11 | = javascript_include_tag "application" 12 | / Le HTML5 shim, for IE6-8 support of HTML elements 13 | /[if lt IE 9] 14 | = javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" 15 | %body 16 | .navbar.navbar-default.navbar-static-top 17 | .container 18 | %button.navbar-toggle(type="button" data-toggle="collapse" data-target=".navbar-responsive-collapse") 19 | %span.icon-bar 20 | %span.icon-bar 21 | %span.icon-bar 22 | %a.navbar-brand(href="#") Be Vimmer 23 | .navbar-collapse.collapse.navbar-responsive-collapse 24 | %ul.nav.navbar-nav 25 | %li= link_to "Japanese", "/" 26 | %li= link_to "English", "/?lang=en" 27 | %li= link_to "Chinese(cn)", "/?lang=cn" 28 | %li= link_to "Chinese(tw)", "/?lang=tw" 29 | 30 | .container 31 | .row 32 | .col-lg-9 33 | = yield 34 | .col-lg-3 35 | .well.sidebar-nav 36 | %h3 Links 37 | %ul.nav.nav-list 38 | %li.nav-header About Be Vimmer 39 | %li= link_to "Japanese", "http://blog.jnito.com/entry/20120415/1334452212" 40 | %li= link_to "English", "http://junichiito.blogspot.jp/2012/04/released-be-vimmer-twitter-bot.html" 41 | %li.nav-header Twitter Bots 42 | %li= link_to "Japanese", "https://twitter.com/#!/be_vimmer_jp" 43 | %li= link_to "English", "https://twitter.com/#!/be_vimmer_en" 44 | %li= link_to "Chinese(cn)", "https://twitter.com/#!/be_vimmer_cn" 45 | %li= link_to "Chinese(tw)", "https://twitter.com/#!/be_vimmer_tw" 46 | %li.nav-header Vim Documentation 47 | %li= link_to "Japanese", "http://vim-jp.org/vimdoc-ja/quickref.html" 48 | %li= link_to "English", "http://code.google.com/p/vim/source/browse/runtime/doc/index.txt" 49 | %li= link_to "Chinese(cn)", "http://sourceforge.net/projects/vimcdoc/files/vimcdoc/1.8.0/" 50 | %li= link_to "Chinese(tw)", "https://github.com/chusiang/vimcdoc-tw" 51 | %li.nav-header Source Code 52 | %li= link_to "github", "https://github.com/JunichiIto/be_vimmer" 53 | %li.nav-header Developer 54 | %li= link_to "@jnchito", "https://twitter.com/jnchito" 55 | -------------------------------------------------------------------------------- /app/views/vim_command/index.html.haml: -------------------------------------------------------------------------------- 1 | %h2 2 | Command List 3 | %table.table.table-bordered.table-condensed 4 | %thead 5 | %tr 6 | %th MODE 7 | %th COMMAND 8 | %th DESCRIPTION 9 | %tbody 10 | - @vim_commands.each do |command| 11 | %tr 12 | %td= command.mode 13 | %td= command.command 14 | %td= command.description 15 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path("../config/application", __dir__) 3 | require_relative "../config/boot" 4 | require "rails/commands" 5 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative "../config/boot" 3 | require "rake" 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require "fileutils" 3 | 4 | # path to your application root. 5 | APP_ROOT = File.expand_path("..", __dir__) 6 | 7 | def system!(*args) 8 | system(*args) || abort("\n== Command #{args} failed ==") 9 | end 10 | 11 | FileUtils.chdir APP_ROOT do 12 | # This script is a way to set up or update your development environment automatically. 13 | # This script is idempotent, so that you can run it at any time and get an expectable outcome. 14 | # Add necessary setup steps to this file. 15 | 16 | puts "== Installing dependencies ==" 17 | system! "gem install bundler --conservative" 18 | system("bundle check") || system!("bundle install") 19 | 20 | # puts "\n== Copying sample files ==" 21 | # unless File.exist?("config/database.yml") 22 | # FileUtils.cp "config/database.yml.sample", "config/database.yml" 23 | # end 24 | 25 | # puts "\n== Preparing database ==" 26 | # system! "bin/rails db:prepare" 27 | 28 | puts "\n== Removing old logs and tempfiles ==" 29 | system! "bin/rails log:clear tmp:clear" 30 | 31 | puts "\n== Restarting application server ==" 32 | system! "bin/rails restart" 33 | end 34 | -------------------------------------------------------------------------------- /bin/update: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'fileutils' 3 | include FileUtils 4 | 5 | # path to your application root. 6 | APP_ROOT = File.expand_path('..', __dir__) 7 | 8 | def system!(*args) 9 | system(*args) || abort("\n== Command #{args} failed ==") 10 | end 11 | 12 | chdir APP_ROOT do 13 | # This script is a way to update your development environment automatically. 14 | # Add necessary update steps to this file. 15 | 16 | puts '== Installing dependencies ==' 17 | system! 'gem install bundler --conservative' 18 | system('bundle check') || system!('bundle install') 19 | 20 | # Install JavaScript dependencies if using Yarn 21 | # system('bin/yarn') 22 | 23 | # puts "\n== Updating database ==" 24 | # system! 'bin/rails db:migrate' 25 | 26 | puts "\n== Removing old logs and tempfiles ==" 27 | system! 'bin/rails log:clear tmp:clear' 28 | 29 | puts "\n== Restarting application server ==" 30 | system! 'bin/rails restart' 31 | end 32 | -------------------------------------------------------------------------------- /bin/yarn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_ROOT = File.expand_path('..', __dir__) 3 | Dir.chdir(APP_ROOT) do 4 | yarn = ENV["PATH"].split(File::PATH_SEPARATOR). 5 | select { |dir| File.expand_path(dir) != __dir__ }. 6 | product(["yarn", "yarn.cmd", "yarn.ps1"]). 7 | map { |dir, file| File.expand_path(file, dir) }. 8 | find { |file| File.executable?(file) } 9 | 10 | if yarn 11 | exec yarn, *ARGV 12 | else 13 | $stderr.puts "Yarn executable was not detected in the system." 14 | $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" 15 | exit 1 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require_relative "config/environment" 4 | 5 | run Rails.application 6 | Rails.application.load_server 7 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require_relative "boot" 2 | 3 | require "rails" 4 | # Pick the frameworks you want: 5 | require "active_model/railtie" 6 | # require "active_job/railtie" 7 | # require "active_record/railtie" 8 | # require "active_storage/engine" 9 | require "action_controller/railtie" 10 | require "action_mailer/railtie" 11 | # require "action_mailbox/engine" 12 | # require "action_text/engine" 13 | require "action_view/railtie" 14 | # require "action_cable/engine" 15 | require "rails/test_unit/railtie" 16 | 17 | # Require the gems listed in Gemfile, including any gems 18 | # you've limited to :test, :development, or :production. 19 | Bundler.require(*Rails.groups) 20 | 21 | module BeVimmer 22 | class Application < Rails::Application 23 | # Initialize configuration defaults for originally generated Rails version. 24 | config.load_defaults 7.0 25 | 26 | # Configuration for the application, engines, and railties goes here. 27 | # 28 | # These settings can be overridden in specific environments using the files 29 | # in config/environments, which are processed later. 30 | # 31 | # config.time_zone = "Central Time (US & Canada)" 32 | # config.eager_load_paths << Rails.root.join("extras") 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) 2 | 3 | require "bundler/setup" # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /config/cable.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: async 3 | 4 | test: 5 | adapter: test 6 | 7 | production: 8 | adapter: redis 9 | url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> 10 | channel_prefix: be_vimmer_production 11 | -------------------------------------------------------------------------------- /config/database.yml.travis: -------------------------------------------------------------------------------- 1 | test: 2 | adapter: postgresql 3 | database: travis_ci_test 4 | username: postgres -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative "application" 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | Rails.application.configure do 4 | # Settings specified here will take precedence over those in config/application.rb. 5 | 6 | # In the development environment your application's code is reloaded any time 7 | # it changes. This slows down response time but is perfect for development 8 | # since you don't have to restart the web server when you make code changes. 9 | config.cache_classes = false 10 | 11 | # Do not eager load code on boot. 12 | config.eager_load = false 13 | 14 | # Show full error reports. 15 | config.consider_all_requests_local = true 16 | 17 | # Enable server timing 18 | config.server_timing = true 19 | 20 | # Enable/disable caching. By default caching is disabled. 21 | # Run rails dev:cache to toggle caching. 22 | if Rails.root.join("tmp/caching-dev.txt").exist? 23 | config.action_controller.perform_caching = true 24 | config.action_controller.enable_fragment_cache_logging = true 25 | 26 | config.cache_store = :memory_store 27 | config.public_file_server.headers = { 28 | "Cache-Control" => "public, max-age=#{2.days.to_i}" 29 | } 30 | else 31 | config.action_controller.perform_caching = false 32 | 33 | config.cache_store = :null_store 34 | end 35 | 36 | # Store uploaded files on the local file system (see config/storage.yml for options). 37 | # config.active_storage.service = :local 38 | 39 | # Don't care if the mailer can't send. 40 | config.action_mailer.raise_delivery_errors = false 41 | 42 | config.action_mailer.perform_caching = false 43 | 44 | # Print deprecation notices to the Rails logger. 45 | config.active_support.deprecation = :log 46 | 47 | # Raise exceptions for disallowed deprecations. 48 | config.active_support.disallowed_deprecation = :raise 49 | 50 | # Tell Active Support which deprecation messages to disallow. 51 | config.active_support.disallowed_deprecation_warnings = [] 52 | 53 | # Raise an error on page load if there are pending migrations. 54 | # config.active_record.migration_error = :page_load 55 | 56 | # Highlight code that triggered database queries in logs. 57 | # config.active_record.verbose_query_logs = true 58 | 59 | # Suppress logger output for asset requests. 60 | config.assets.quiet = true 61 | 62 | # Raises error for missing translations. 63 | # config.i18n.raise_on_missing_translations = true 64 | 65 | # Annotate rendered view with file names. 66 | # config.action_view.annotate_rendered_view_with_filenames = true 67 | 68 | # Uncomment if you wish to allow Action Cable access from any origin. 69 | # config.action_cable.disable_request_forgery_protection = true 70 | end 71 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | Rails.application.configure do 4 | # Settings specified here will take precedence over those in config/application.rb. 5 | 6 | # Code is not reloaded between requests. 7 | config.cache_classes = true 8 | 9 | # Eager load code on boot. This eager loads most of Rails and 10 | # your application in memory, allowing both threaded web servers 11 | # and those relying on copy on write to perform better. 12 | # Rake tasks automatically ignore this option for performance. 13 | config.eager_load = true 14 | 15 | # Full error reports are disabled and caching is turned on. 16 | config.consider_all_requests_local = false 17 | config.action_controller.perform_caching = true 18 | 19 | # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] 20 | # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). 21 | # config.require_master_key = true 22 | 23 | # Disable serving static files from the `/public` folder by default since 24 | # Apache or NGINX already handles this. 25 | config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? 26 | 27 | # Compress CSS using a preprocessor. 28 | # config.assets.css_compressor = :sass 29 | 30 | # Do not fallback to assets pipeline if a precompiled asset is missed. 31 | config.assets.compile = false 32 | 33 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 34 | # config.asset_host = "http://assets.example.com" 35 | 36 | # Specifies the header that your server uses for sending files. 37 | # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache 38 | # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX 39 | 40 | # Store uploaded files on the local file system (see config/storage.yml for options). 41 | # config.active_storage.service = :local 42 | 43 | # Mount Action Cable outside main process or domain. 44 | # config.action_cable.mount_path = nil 45 | # config.action_cable.url = "wss://example.com/cable" 46 | # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] 47 | 48 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 49 | config.force_ssl = true 50 | 51 | # Include generic and useful information about system operation, but avoid logging too much 52 | # information to avoid inadvertent exposure of personally identifiable information (PII). 53 | config.log_level = :info 54 | 55 | # Prepend all log lines with the following tags. 56 | config.log_tags = [ :request_id ] 57 | 58 | # Use a different cache store in production. 59 | # config.cache_store = :mem_cache_store 60 | 61 | # Use a real queuing backend for Active Job (and separate queues per environment). 62 | # config.active_job.queue_adapter = :resque 63 | # config.active_job.queue_name_prefix = "be_vimmer_production" 64 | 65 | config.action_mailer.perform_caching = false 66 | 67 | # Ignore bad email addresses and do not raise email delivery errors. 68 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 69 | # config.action_mailer.raise_delivery_errors = false 70 | 71 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 72 | # the I18n.default_locale when a translation cannot be found). 73 | config.i18n.fallbacks = true 74 | 75 | # Don't log any deprecations. 76 | config.active_support.report_deprecations = false 77 | 78 | # Use default logging formatter so that PID and timestamp are not suppressed. 79 | config.log_formatter = ::Logger::Formatter.new 80 | 81 | # Use a different logger for distributed setups. 82 | # require "syslog/logger" 83 | # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") 84 | 85 | if ENV["RAILS_LOG_TO_STDOUT"].present? 86 | logger = ActiveSupport::Logger.new(STDOUT) 87 | logger.formatter = config.log_formatter 88 | config.logger = ActiveSupport::TaggedLogging.new(logger) 89 | end 90 | 91 | # Do not dump schema after migrations. 92 | # config.active_record.dump_schema_after_migration = false 93 | end 94 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | require "active_support/core_ext/integer/time" 2 | 3 | # The test environment is used exclusively to run your application's 4 | # test suite. You never need to work with it otherwise. Remember that 5 | # your test database is "scratch space" for the test suite and is wiped 6 | # and recreated between test runs. Don't rely on the data there! 7 | 8 | Rails.application.configure do 9 | # Settings specified here will take precedence over those in config/application.rb. 10 | 11 | # Turn false under Spring and add config.action_view.cache_template_loading = true. 12 | config.cache_classes = true 13 | 14 | # Eager loading loads your whole application. When running a single test locally, 15 | # this probably isn't necessary. It's a good idea to do in a continuous integration 16 | # system, or in some way before deploying your code. 17 | config.eager_load = ENV["CI"].present? 18 | 19 | # Configure public file server for tests with Cache-Control for performance. 20 | config.public_file_server.enabled = true 21 | config.public_file_server.headers = { 22 | "Cache-Control" => "public, max-age=#{1.hour.to_i}" 23 | } 24 | 25 | # Show full error reports and disable caching. 26 | config.consider_all_requests_local = true 27 | config.action_controller.perform_caching = false 28 | config.cache_store = :null_store 29 | 30 | # Raise exceptions instead of rendering exception templates. 31 | config.action_dispatch.show_exceptions = false 32 | 33 | # Disable request forgery protection in test environment. 34 | config.action_controller.allow_forgery_protection = false 35 | 36 | # Store uploaded files on the local file system in a temporary directory. 37 | # config.active_storage.service = :test 38 | 39 | config.action_mailer.perform_caching = false 40 | 41 | # Tell Action Mailer not to deliver emails to the real world. 42 | # The :test delivery method accumulates sent emails in the 43 | # ActionMailer::Base.deliveries array. 44 | config.action_mailer.delivery_method = :test 45 | 46 | # Print deprecation notices to the stderr. 47 | config.active_support.deprecation = :stderr 48 | 49 | # Raise exceptions for disallowed deprecations. 50 | config.active_support.disallowed_deprecation = :raise 51 | 52 | # Tell Active Support which deprecation messages to disallow. 53 | config.active_support.disallowed_deprecation_warnings = [] 54 | 55 | # Raises error for missing translations. 56 | # config.i18n.raise_on_missing_translations = true 57 | 58 | # Annotate rendered view with file names. 59 | # config.action_view.annotate_rendered_view_with_filenames = true 60 | end 61 | -------------------------------------------------------------------------------- /config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ActiveSupport::Reloader.to_prepare do 4 | # ApplicationController.renderer.defaults.merge!( 5 | # http_host: 'example.org', 6 | # https: false 7 | # ) 8 | # end 9 | -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = "1.0" 5 | 6 | # Add additional assets to the asset load path. 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in the app/assets 11 | # folder are already added. 12 | # Rails.application.config.assets.precompile += %w( admin.js admin.css ) 13 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code 7 | # by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". 8 | Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] 9 | -------------------------------------------------------------------------------- /config/initializers/config.rb: -------------------------------------------------------------------------------- 1 | Config.setup do |config| 2 | # Name of the constant exposing loaded settings 3 | config.const_name = 'Settings' 4 | 5 | # Ability to remove elements of the array set in earlier loaded settings file. For example value: '--'. 6 | # 7 | # config.knockout_prefix = nil 8 | 9 | # Load environment variables from the `ENV` object and override any settings defined in files. 10 | # 11 | # config.use_env = false 12 | 13 | # Define ENV variable prefix deciding which variables to load into config. 14 | # 15 | # config.env_prefix = 'Settings' 16 | 17 | # What string to use as level separator for settings loaded from ENV variables. Default value of '.' works well 18 | # with Heroku, but you might want to change it for example for '__' to easy override settings from command line, where 19 | # using dots in variable names might not be allowed (eg. Bash). 20 | # 21 | # config.env_separator = '.' 22 | 23 | # Ability to process variables names: 24 | # * nil - no change 25 | # * :downcase - convert to lower case 26 | # 27 | # config.env_converter = nil 28 | 29 | # Parse numeric values as integers instead of strings. 30 | # 31 | # config.env_parse_values = false 32 | end 33 | -------------------------------------------------------------------------------- /config/initializers/content_security_policy.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Define an application-wide content security policy. 4 | # See the Securing Rails Applications Guide for more information: 5 | # https://guides.rubyonrails.org/security.html#content-security-policy-header 6 | 7 | # Rails.application.configure do 8 | # config.content_security_policy do |policy| 9 | # policy.default_src :self, :https 10 | # policy.font_src :self, :https, :data 11 | # policy.img_src :self, :https, :data 12 | # policy.object_src :none 13 | # policy.script_src :self, :https 14 | # policy.style_src :self, :https 15 | # # Specify URI for violation reports 16 | # # policy.report_uri "/csp-violation-report-endpoint" 17 | # end 18 | # 19 | # # Generate session nonces for permitted importmap and inline scripts 20 | # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } 21 | # config.content_security_policy_nonce_directives = %w(script-src) 22 | # 23 | # # Report violations without enforcing the policy. 24 | # # config.content_security_policy_report_only = true 25 | # end 26 | -------------------------------------------------------------------------------- /config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :json 6 | -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure parameters to be filtered from the log file. Use this to limit dissemination of 4 | # sensitive information. See the ActiveSupport::ParameterFilter documentation for supported 5 | # notations and behaviors. 6 | Rails.application.config.filter_parameters += [ 7 | :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn 8 | ] 9 | -------------------------------------------------------------------------------- /config/initializers/generators.rb: -------------------------------------------------------------------------------- 1 | Rails.application.config.generators do |g| 2 | g.test_framework = :rspec 3 | end 4 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, "\\1en" 8 | # inflect.singular /^(ox)en/i, "\\1" 9 | # inflect.irregular "person", "people" 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym "RESTful" 16 | # end 17 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /config/initializers/permissions_policy.rb: -------------------------------------------------------------------------------- 1 | # Define an application-wide HTTP permissions policy. For further 2 | # information see https://developers.google.com/web/updates/2018/06/feature-policy 3 | # 4 | # Rails.application.config.permissions_policy do |f| 5 | # f.camera :none 6 | # f.gyroscope :none 7 | # f.microphone :none 8 | # f.usb :none 9 | # f.fullscreen :self 10 | # f.payment :self, "https://secure.example.com" 11 | # end 12 | -------------------------------------------------------------------------------- /config/initializers/secret_token.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rake secret` to generate a secure secret key. 9 | 10 | # Make sure your secret_key_base is kept private 11 | # if you're sharing your code publicly. 12 | BeVimmer::Application.config.secret_key_base = 'e95bc8e9a8f3efc3f6bf39b3abe4e6d84073973d0c017d376faf8a36a2f087871205cbddbe4f67eac405d5560b1b9e1d1e0e430b4e131ae07537a7e46d63879c' 13 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_be_vimmer_session' 4 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/locales/en.bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Sample localization file for English. Add more files in this directory for other locales. 2 | # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. 3 | 4 | en: 5 | helpers: 6 | actions: "Actions" 7 | links: 8 | back: "Back" 9 | cancel: "Cancel" 10 | confirm: "Confirm" 11 | destroy: "Delete" 12 | new: "New" 13 | titles: 14 | edit: "Edit" 15 | save: "Save" 16 | new: "New" 17 | delete: "Delete" 18 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # The following keys must be escaped otherwise they will not be retrieved by 20 | # the default I18n backend: 21 | # 22 | # true, false, on, off, yes, no 23 | # 24 | # Instead, surround them with single quotes. 25 | # 26 | # en: 27 | # 'true': 'foo' 28 | # 29 | # To learn more, please read the Rails Internationalization guide 30 | # available at https://guides.rubyonrails.org/i18n.html. 31 | 32 | en: 33 | hello: "Hello world" 34 | -------------------------------------------------------------------------------- /config/puma.rb: -------------------------------------------------------------------------------- 1 | # Puma can serve each request in a thread from an internal thread pool. 2 | # The `threads` method setting takes two numbers: a minimum and maximum. 3 | # Any libraries that use thread pools should be configured to match 4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum 5 | # and maximum; this matches the default thread size of Active Record. 6 | # 7 | max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } 8 | min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } 9 | threads min_threads_count, max_threads_count 10 | 11 | # Specifies the `worker_timeout` threshold that Puma will use to wait before 12 | # terminating a worker in development environments. 13 | # 14 | worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" 15 | 16 | # Specifies the `port` that Puma will listen on to receive requests; default is 3000. 17 | # 18 | port ENV.fetch("PORT") { 3000 } 19 | 20 | # Specifies the `environment` that Puma will run in. 21 | # 22 | environment ENV.fetch("RAILS_ENV") { "development" } 23 | 24 | # Specifies the `pidfile` that Puma will use. 25 | pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } 26 | 27 | # Specifies the number of `workers` to boot in clustered mode. 28 | # Workers are forked web server processes. If using threads and workers together 29 | # the concurrency of the application would be max `threads` * `workers`. 30 | # Workers do not work on JRuby or Windows (both of which do not support 31 | # processes). 32 | # 33 | # workers ENV.fetch("WEB_CONCURRENCY") { 2 } 34 | 35 | # Use the `preload_app!` method when specifying a `workers` number. 36 | # This directive tells Puma to first boot the application and load code 37 | # before forking the application. This takes advantage of Copy On Write 38 | # process behavior so workers use less memory. 39 | # 40 | # preload_app! 41 | 42 | # Allow puma to be restarted by `rails restart` command. 43 | plugin :tmp_restart 44 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | Rails.application.routes.draw do 2 | get "vim_command/index" 3 | 4 | # The priority is based upon order of creation: 5 | # first created -> highest priority. 6 | 7 | # Sample of regular route: 8 | # match 'products/:id' => 'catalog#view' 9 | # Keep in mind you can assign values other than :controller and :action 10 | 11 | # Sample of named route: 12 | # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase 13 | # This route can be invoked with purchase_url(:id => product.id) 14 | 15 | # Sample resource route (maps HTTP verbs to controller actions automatically): 16 | # resources :products 17 | 18 | # Sample resource route with options: 19 | # resources :products do 20 | # member do 21 | # get 'short' 22 | # post 'toggle' 23 | # end 24 | # 25 | # collection do 26 | # get 'sold' 27 | # end 28 | # end 29 | 30 | # Sample resource route with sub-resources: 31 | # resources :products do 32 | # resources :comments, :sales 33 | # resource :seller 34 | # end 35 | 36 | # Sample resource route with more complex sub-resources 37 | # resources :products do 38 | # resources :comments 39 | # resources :sales do 40 | # get 'recent', :on => :collection 41 | # end 42 | # end 43 | 44 | # Sample resource route within a namespace: 45 | # namespace :admin do 46 | # # Directs /admin/products/* to Admin::ProductsController 47 | # # (app/controllers/admin/products_controller.rb) 48 | # resources :products 49 | # end 50 | 51 | # You can have the root of your site routed with "root" 52 | # just remember to delete public/index.html. 53 | root :to => 'vim_command#index' 54 | 55 | # See how all your routes lay out with "rake routes" 56 | 57 | # This is a legacy wild controller route that's not recommended for RESTful applications. 58 | # Note: This route will make all actions in every controller accessible via GET requests. 59 | # match ':controller(/:action(/:id))(.:format)' 60 | end 61 | -------------------------------------------------------------------------------- /config/secrets.yml: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rails secret` to generate a secure secret key. 9 | 10 | # Make sure the secrets in this file are kept private 11 | # if you're sharing your code publicly. 12 | 13 | # Shared secrets are available across all environments. 14 | 15 | # shared: 16 | # api_key: a1B2c3D4e5F6 17 | 18 | # Environmental secrets are only available for that specific environment. 19 | 20 | development: 21 | secret_key_base: 1d6c93ea19a1bdf11b324e7852d635d5daf58dfc668416f62e69ced0a9fc0a7f9e5cf959ff0afbdacce23288ad07e5d140ee5896929b0707b35b4b0e87afdeeb 22 | 23 | test: 24 | secret_key_base: a128564175dae9cd5efa77dea799b868cf5270e89928a9875212fa90baf9e9aaab17e08a3315b098a0ec2960b019b5faabba9361849b992aa7dc4b8a7e1ed069 25 | 26 | # Do not keep production secrets in the unencrypted secrets file. 27 | # Instead, either read values from the environment. 28 | # Or, use `bin/rails secrets:setup` to configure encrypted secrets 29 | # and move the `production:` environment over there. 30 | 31 | production: 32 | secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 33 | -------------------------------------------------------------------------------- /config/settings.yml: -------------------------------------------------------------------------------- 1 | twitter_consumer_key_jp: (please set) 2 | twitter_consumer_secret_jp: (please set) 3 | twitter_oauth_token_jp: (please set) 4 | twitter_oauth_token_secret_jp: (please set) 5 | 6 | twitter_consumer_key_en: (please set) 7 | twitter_consumer_secret_en: (please set) 8 | twitter_oauth_token_en: (please set) 9 | twitter_oauth_token_secret_en: (please set) 10 | 11 | twitter_consumer_key_cn: (please set) 12 | twitter_consumer_secret_cn: (please set) 13 | twitter_oauth_token_cn: (please set) 14 | twitter_oauth_token_secret_cn: (please set) 15 | 16 | twitter_consumer_key_tw: (please set) 17 | twitter_consumer_secret_tw: (please set) 18 | twitter_oauth_token_tw: (please set) 19 | twitter_oauth_token_secret_tw: (please set) 20 | 21 | 22 | -------------------------------------------------------------------------------- /config/settings/development.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/config/settings/development.yml -------------------------------------------------------------------------------- /config/settings/production.yml: -------------------------------------------------------------------------------- 1 | twitter_consumer_key_jp: '<%= ENV["twitter_consumer_key_jp"] %>' 2 | twitter_consumer_secret_jp: '<%= ENV["twitter_consumer_secret_jp"] %>' 3 | twitter_oauth_token_jp: '<%= ENV["twitter_oauth_token_jp"] %>' 4 | twitter_oauth_token_secret_jp: '<%= ENV["twitter_oauth_token_secret_jp"] %>' 5 | 6 | twitter_consumer_key_en: '<%= ENV["twitter_consumer_key_en"] %>' 7 | twitter_consumer_secret_en: '<%= ENV["twitter_consumer_secret_en"] %>' 8 | twitter_oauth_token_en: '<%= ENV["twitter_oauth_token_en"] %>' 9 | twitter_oauth_token_secret_en: '<%= ENV["twitter_oauth_token_secret_en"] %>' 10 | 11 | twitter_consumer_key_cn: '<%= ENV["twitter_consumer_key_cn"] %>' 12 | twitter_consumer_secret_cn: '<%= ENV["twitter_consumer_secret_cn"] %>' 13 | twitter_oauth_token_cn: '<%= ENV["twitter_oauth_token_cn"] %>' 14 | twitter_oauth_token_secret_cn: '<%= ENV["twitter_oauth_token_secret_cn"] %>' 15 | 16 | twitter_consumer_key_tw: '<%= ENV["twitter_consumer_key_tw"] %>' 17 | twitter_consumer_secret_tw: '<%= ENV["twitter_consumer_secret_tw"] %>' 18 | twitter_oauth_token_tw: '<%= ENV["twitter_oauth_token_tw"] %>' 19 | twitter_oauth_token_secret_tw: '<%= ENV["twitter_oauth_token_secret_tw"] %>' 20 | -------------------------------------------------------------------------------- /config/settings/staging.yml: -------------------------------------------------------------------------------- 1 | twitter_consumer_key_jp: '<%= ENV["twitter_consumer_key_jp"] %>' 2 | twitter_consumer_secret_jp: '<%= ENV["twitter_consumer_secret_jp"] %>' 3 | twitter_oauth_token_jp: '<%= ENV["twitter_oauth_token_jp"] %>' 4 | twitter_oauth_token_secret_jp: '<%= ENV["twitter_oauth_token_secret_jp"] %>' 5 | 6 | twitter_consumer_key_en: '<%= ENV["twitter_consumer_key_en"] %>' 7 | twitter_consumer_secret_en: '<%= ENV["twitter_consumer_secret_en"] %>' 8 | twitter_oauth_token_en: '<%= ENV["twitter_oauth_token_en"] %>' 9 | twitter_oauth_token_secret_en: '<%= ENV["twitter_oauth_token_secret_en"] %>' 10 | 11 | twitter_consumer_key_cn: '<%= ENV["twitter_consumer_key_cn"] %>' 12 | twitter_consumer_secret_cn: '<%= ENV["twitter_consumer_secret_cn"] %>' 13 | twitter_oauth_token_cn: '<%= ENV["twitter_oauth_token_cn"] %>' 14 | twitter_oauth_token_secret_cn: '<%= ENV["twitter_oauth_token_secret_cn"] %>' 15 | 16 | twitter_consumer_key_tw: '<%= ENV["twitter_consumer_key_tw"] %>' 17 | twitter_consumer_secret_tw: '<%= ENV["twitter_consumer_secret_tw"] %>' 18 | twitter_oauth_token_tw: '<%= ENV["twitter_oauth_token_tw"] %>' 19 | twitter_oauth_token_secret_tw: '<%= ENV["twitter_oauth_token_secret_tw"] %>' 20 | 21 | -------------------------------------------------------------------------------- /config/settings/test.yml: -------------------------------------------------------------------------------- 1 | twitter_consumer_key_jp: (please set) 2 | twitter_consumer_secret_jp: (please set) 3 | twitter_oauth_token_jp: (please set) 4 | twitter_oauth_token_secret_jp: (please set) 5 | -------------------------------------------------------------------------------- /config/spring.rb: -------------------------------------------------------------------------------- 1 | %w[ 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ].each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /config/storage.yml: -------------------------------------------------------------------------------- 1 | test: 2 | service: Disk 3 | root: <%= Rails.root.join("tmp/storage") %> 4 | 5 | local: 6 | service: Disk 7 | root: <%= Rails.root.join("storage") %> 8 | 9 | # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) 10 | # amazon: 11 | # service: S3 12 | # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> 13 | # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> 14 | # region: us-east-1 15 | # bucket: your_own_bucket 16 | 17 | # Remember not to checkin your GCS keyfile to a repository 18 | # google: 19 | # service: GCS 20 | # project: your_project 21 | # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> 22 | # bucket: your_own_bucket 23 | 24 | # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) 25 | # microsoft: 26 | # service: AzureStorage 27 | # storage_account_name: your_account_name 28 | # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> 29 | # container: your_container_name 30 | 31 | # mirror: 32 | # service: Mirror 33 | # primary: local 34 | # mirrors: [ amazon, google, microsoft ] 35 | -------------------------------------------------------------------------------- /doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | Use this README file to introduce your application and point to useful places in the API for learning more. 2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. 3 | -------------------------------------------------------------------------------- /doc/csv/cn.csv: -------------------------------------------------------------------------------- 1 | language,mode,command,description 2 | cn,EX 命令,:!,过滤行,或可通过外部命令执行之 3 | cn,EX 命令,:!!,"重复上次的 "":!"" 命令" 4 | cn,EX 命令,:#,"等同于 "":number""" 5 | cn,EX 命令,:&,"重复上次的 "":substitute""" 6 | cn,EX 命令,:*,执行寄存器的内容 7 | cn,EX 命令,:<,将行左移一个 'shiftwidth' 8 | cn,EX 命令,:=,显示光标所在的行号 9 | cn,EX 命令,:>,将行右移一个 'shiftwidth' 10 | cn,EX 命令,:@,执行寄存器的内容 11 | cn,EX 命令,:@@,"重复上次的 "":@""" 12 | cn,EX 命令,:ab[breviate],输入缩写 13 | cn,EX 命令,:abc[lear],删除所有的缩写 14 | cn,EX 命令,:abo[veleft],使得分割的窗口出现在左侧或者上方 15 | cn,EX 命令,:al[l],为参数列表的每个文件打开一个窗口 16 | cn,EX 命令,:am[enu],为所有模式输入菜单项 17 | cn,EX 命令,:an[oremenu],为所有模式输入菜单项,不会被重新映射 18 | cn,EX 命令,:a[ppend],附加文本 19 | cn,EX 命令,:arga[dd],增加项目到参数列表中 20 | cn,EX 命令,:argd[elete],从参数列表中删除项目 21 | cn,EX 命令,:argdo,在参数列表上的所有项目上执行一个命令 22 | cn,EX 命令,:arge[dit],增加项目到参数列表中并编辑之 23 | cn,EX 命令,:argg[lobal],定义全局参数列表 24 | cn,EX 命令,:argl[ocal],定义本地参数列表 25 | cn,EX 命令,:ar[gs],显示参数列表 26 | cn,EX 命令,:argu[ment],转到参数列表一个指定的文件 27 | cn,EX 命令,:as[cii],显示光标所在的字符的 ascii 值 28 | cn,EX 命令,:aug[roup],选择要用的自动命令组 29 | cn,EX 命令,:aun[menu],删除所有模式下的菜单 30 | cn,EX 命令,:au[tocmd],输入或者显示自动命令 31 | cn,EX 命令,:bad[d],增加缓冲区到缓冲区列表 32 | cn,EX 命令,:ba[ll],为缓冲区列表里的每个缓冲区打开一个窗口 33 | cn,EX 命令,:bd[elete],从缓冲区列表删除缓冲区 34 | cn,EX 命令,:be[have],设置鼠标和选择行为 35 | cn,EX 命令,:bel[owright],使得分割的窗口出现在右侧或者下方 36 | cn,EX 命令,:bf[irst],转到缓冲区列表里的第一个缓冲区 37 | cn,EX 命令,:bl[ast],转到缓冲区列表里的最后一个缓冲区 38 | cn,EX 命令,:bm[odified],转到缓冲区列表里的下一个修改过的缓冲区 39 | cn,EX 命令,:bn[ext],转到缓冲区列表里的下一个缓冲区 40 | cn,EX 命令,:bN[ext],转到缓冲区列表里的上一个缓冲区 41 | cn,EX 命令,:bo[tright],使得分割的窗口出现在最右侧或者下方 42 | cn,EX 命令,:bp[revious],转到缓冲区列表里的上一个缓冲区 43 | cn,EX 命令,:brea[k],跳出 while 循环 44 | cn,EX 命令,:breaka[dd],增加调试器断点 45 | cn,EX 命令,:breakd[el],删除调试器断点 46 | cn,EX 命令,:breakl[ist],列出调试器断点 47 | cn,EX 命令,:br[ewind],转到缓冲区列表里的第一个缓冲区 48 | cn,EX 命令,:bro[wse],使用文件选择对话框 49 | cn,EX 命令,:bufdo,为所有列表内缓冲区执行命令 50 | cn,EX 命令,:b[uffer],转到缓冲区列表里的特定缓冲区 51 | cn,EX 命令,:buffers,列出缓冲区列表里的所有文件 52 | cn,EX 命令,:bun[load],卸载指定的缓冲区 53 | cn,EX 命令,:bw[ipeout],真正删除一个缓冲区 54 | cn,EX 命令,:ca[bbrev],"类似于 "":abbreviate"",但用于命令行模式" 55 | cn,EX 命令,:cabc[lear],清除所有缩写,用于命令行模式 56 | cn,EX 命令,:caddb[uffer],通过缓冲区补充错误 57 | cn,EX 命令,:cad[dexpr],通过表达式补充错误 58 | cn,EX 命令,:caddf[ile],加入错误信息到当前 quickfix 列表 59 | cn,EX 命令,:cal[l],调用函数 60 | cn,EX 命令,:cat[ch],:try 命令的一部分 61 | cn,EX 命令,:cb[uffer],分析错误信息并跳转到第一个 62 | cn,EX 命令,:cc,跳转到特定的错误 63 | cn,EX 命令,:ccl[ose],关闭 quickfix 窗口 64 | cn,EX 命令,:cd,改变目录 65 | cn,EX 命令,:ce[nter],排版行,使其居中对齐 66 | cn,EX 命令,:cex[pr],从表达式里读取错误并跳转到第一个 67 | cn,EX 命令,:cf[ile],读入含有错误信息的文件,并跳转到第一个 68 | cn,EX 命令,:cfir[st],跳转到指定的错误上,缺省为第一个 69 | cn,EX 命令,:cgetb[uffer],从缓冲区里得到错误 70 | cn,EX 命令,:cgete[xpr],从表达实里得到错误 71 | cn,EX 命令,:cg[etfile],读入含有错误信息的文件 72 | cn,EX 命令,:c[hange],替换一行或若干行 73 | cn,EX 命令,:cha[nges],显示修改的列表 74 | cn,EX 命令,:chd[ir],改变当前目录 75 | cn,EX 命令,:che[ckpath],列出包含的头文件 76 | cn,EX 命令,:checkt[ime],检查载入缓冲区的时间标签 77 | cn,EX 命令,:cla[st],跳转到指定的错误上,缺省为最后一个 78 | cn,EX 命令,:cl[ist],列出所有错误 79 | cn,EX 命令,:clo[se],改变当前窗口 80 | cn,EX 命令,:cm[ap],"类似于 "":map"",但用于命令行模式" 81 | cn,EX 命令,:cmapc[lear],清除所有映射,用于命令行模式 82 | cn,EX 命令,:cme[nu],为命令行模式增加菜单 83 | cn,EX 命令,:cnew[er],跳转到下一个较新的错误列表 84 | cn,EX 命令,:cn[ext],跳转到下一个错误 85 | cn,EX 命令,:cN[ext],跳转到上一个错误 86 | cn,EX 命令,:cnf[ile],跳转到下一个文件的第一个错误 87 | cn,EX 命令,:cNf[ile],跳转到前一个文件的最后一个错误 88 | cn,EX 命令,:cnorea[bbrev],"类似于 "":noreabbrev"",但用于命令行模式" 89 | cn,EX 命令,:cno[remap],"类似于 "":noremap"",但用于命令行模式" 90 | cn,EX 命令,:cnoreme[nu],"类似于 "":noremenu"",但用于命令行模式" 91 | cn,EX 命令,:col[der],跳转到上一个较老的错误列表 92 | cn,EX 命令,:colo[rscheme],载入特定的色彩方案 93 | cn,EX 命令,:comc[lear],清除所有用户自定的命令 94 | cn,EX 命令,:com[mand],建立用户自定的命令 95 | cn,EX 命令,:comp[iler],为特定编译器设定选项 96 | cn,EX 命令,:conf[irm],需要确认时,提示用户 97 | cn,EX 命令,:con[tinue],回到 :while 开始处 98 | cn,EX 命令,:cope[n],打开 quickfix 窗口 99 | cn,EX 命令,:co[py],复制行 100 | cn,EX 命令,:cpf[ile],跳转到上一个文件的最后一个错误 101 | cn,EX 命令,:cp[revious],跳转到上一个错误 102 | cn,EX 命令,:cq[uit],退出 Vim,带错误码 103 | cn,EX 命令,:cr[ewind],跳到指定的错误,缺省为第一个 104 | cn,EX 命令,:cs[cope],执行 cscope 命令 105 | cn,EX 命令,:cst[ag],使用 cscope 来跳转到标签上 106 | cn,EX 命令,:cuna[bbrev],"类似于 "":unabbrev"",但用于命令行模式" 107 | cn,EX 命令,:cu[nmap],"类似于 "":unmap"",但用于命令行模式" 108 | cn,EX 命令,:cunme[nu],删除命令行的菜单 109 | cn,EX 命令,:cw[indow],打开或者关闭 quickfix 窗口 110 | cn,EX 命令,:deb[ug],在调试模式执行命令 111 | cn,EX 命令,:debugg[reedy],从正常的输入那里读取调试模式命令 112 | cn,EX 命令,:delc[ommand],删除用户自定的命令 113 | cn,EX 命令,:d[elete],删除行 114 | cn,EX 命令,:delf[unction],删除用户函数 115 | cn,EX 命令,:delm[arks],删除位置标记 116 | cn,EX 命令,:diffg[et],删除当前缓冲区的所有差异 117 | cn,EX 命令,:diffo[ff],关闭 diff 模式 118 | cn,EX 命令,:diffp[atch],应用补丁然后显示差异 119 | cn,EX 命令,:diffpu[t],删除另外一个缓冲区的差异 120 | cn,EX 命令,:diffs[plit],显示和另外一个文件的差异 121 | cn,EX 命令,:diffthis,使得当前窗口成为 diff 窗口 122 | cn,EX 命令,:dif[fupdate],更新 'diff' 缓冲区 123 | cn,EX 命令,:dig[raphs],显示或者输入二合字母 124 | cn,EX 命令,:di[splay],显示寄存器 125 | cn,EX 命令,:dj[ump],跳转到 #define 126 | cn,EX 命令,:dl[ist],列出所有的 #define 127 | cn,EX 命令,:doautoa[ll],在所有载入的缓冲区上应用自动命令 128 | cn,EX 命令,:do[autocmd],在当前缓冲区应用自动命令 129 | cn,EX 命令,:dr[op],跳到编辑某文件的窗口,不成功则在当前窗口编辑之 130 | cn,EX 命令,:ds[earch],列出一个 #define 131 | cn,EX 命令,:dsp[lit],分割窗口并跳转到 #define 132 | cn,EX 命令,:ea[rlier],回到旧的改变,撤销 133 | cn,EX 命令,:ec[ho],回显表达式结果 134 | cn,EX 命令,:echoe[rr],类似于 :echo,如同错误一样显示和使用历史 135 | cn,EX 命令,:echoh[l],为 echo 等命令设置高亮 136 | cn,EX 命令,:echom[sg],等同于 :echo,在历史里放置消息 137 | cn,EX 命令,:echon,等同于 :echo,但不留 138 | cn,EX 命令,:e[dit],编辑文件 139 | cn,EX 命令,:el[se],:if 命令的一部分 140 | cn,EX 命令,:elsei[f],:if 命令的一部分 141 | cn,EX 命令,:em[enu],按名字执行菜单 142 | cn,EX 命令,:endfo[r],结束最近的 :for 143 | cn,EX 命令,:endf[unction],结束用户函数 144 | cn,EX 命令,:en[dif],结束最近的 :if 145 | cn,EX 命令,:endt[ry],结束最近的 :try 146 | cn,EX 命令,:endw[hile],结束最近的 :while 147 | cn,EX 命令,:ene[w],编辑新的无名缓冲区 148 | cn,EX 命令,:ex,"等同于 "":edit""" 149 | cn,EX 命令,:exe[cute],执行表达式的结果产生的字符串 150 | cn,EX 命令,:exi[t],"等同于 "":xit""" 151 | cn,EX 命令,:exu[sage],Ex 命令总览 152 | cn,EX 命令,:f[ile],显示或者设置当前文件名 153 | cn,EX 命令,:files,列出缓冲区列表的所有文件 154 | cn,EX 命令,:filet[ype],切换文件类型检测的打开/关闭 155 | cn,EX 命令,:fina[lly],:try 命令的一部分 156 | cn,EX 命令,:fin[d],在 'path' 里找寻文件并编辑之 157 | cn,EX 命令,:fini[sh],退出 Vim 脚本的执行 158 | cn,EX 命令,:fir[st],转到参数列表的第一个文件 159 | cn,EX 命令,:fix[del],设置 的键码 160 | cn,EX 命令,:fo[ld],创建折叠 161 | cn,EX 命令,:foldc[lose],关闭折叠 162 | cn,EX 命令,:folddoc[losed],对所有在关闭折叠的行执行命令 163 | cn,EX 命令,:foldd[oopen],对所有不在关闭折叠的行执行命令 164 | cn,EX 命令,:foldo[pen],打开折叠 165 | cn,EX 命令,:for,for 循环 166 | cn,EX 命令,:fu[nction],定义用户函数 167 | cn,EX 命令,:g[lobal],对匹配的行执行命令 168 | cn,EX 命令,:go[to],转到缓冲区某字节处 169 | cn,EX 命令,:gr[ep],执行 'grepprg' 并转到第一个匹配处 170 | cn,EX 命令,:grepa[dd],类似 :grep,但附加到当前列表后 171 | cn,EX 命令,:gu[i],启动 GUI 172 | cn,EX 命令,:gv[im],启动 GUI 173 | cn,EX 命令,:ha[rdcopy],发送文本到打印机 174 | cn,EX 命令,:h[elp],打开帮助窗口 175 | cn,EX 命令,:helpf[ind],打开显示帮助窗口的对话框 176 | cn,EX 命令,:helpg[rep],"类似于 "":grep"",但搜索帮助文件" 177 | cn,EX 命令,:helpt[ags],为一个目录产生帮助标签 178 | cn,EX 命令,:hid[e],为一个命令隐藏当前缓冲区 179 | cn,EX 命令,:hi[ghlight],指定高亮方法 180 | cn,EX 命令,:his[tory],显示历史列表 181 | cn,EX 命令,:ia[bbrev],"类似于 "":abbrev"",但用于插入模式" 182 | cn,EX 命令,:iabc[lear],"类似于 "":abclear"",但用于插入模式" 183 | cn,EX 命令,:if,条件满足时执行命令 184 | cn,EX 命令,:ij[ump],跳转到标识符的定义 185 | cn,EX 命令,:il[ist],列出匹配标识符的行 186 | cn,EX 命令,:im[ap],"类似于 "":map"",但用于插入模式" 187 | cn,EX 命令,:imapc[lear],"类似于 "":map"",但用于插入模式" 188 | cn,EX 命令,:ime[nu],为插入模式增加菜单 189 | cn,EX 命令,:inorea[bbrev],"类似于 "":noreabbrev"",但用于插入模式" 190 | cn,EX 命令,:ino[remap],"类似于 "":noremap"",但用于插入模式" 191 | cn,EX 命令,:inoreme[nu],"类似于 "":noremenu"",但用于插入模式" 192 | cn,EX 命令,:i[nsert],插入文本 193 | cn,EX 命令,:int[ro],显示介绍文字 194 | cn,EX 命令,:is[earch],列出匹配标识符的一行 195 | cn,EX 命令,:isp[lit],分割窗口,并跳转到标识符的定义 196 | cn,EX 命令,:iuna[bbrev],"类似于 "":unabbrev"",但用于插入模式" 197 | cn,EX 命令,:iu[nmap],"类似于 "":unmap"",但用于插入模式" 198 | cn,EX 命令,:iunme[nu],删除插入模式的菜单 199 | cn,EX 命令,:j[oin],连接行 200 | cn,EX 命令,:ju[mps],显示跳转表 201 | cn,EX 命令,:k,设置位置标记 202 | cn,EX 命令,:keepa[lt],跟随的命令保持轮换文件不变 203 | cn,EX 命令,:keepj[jumps],跟随的命令保持跳转表和位置标记不变 204 | cn,EX 命令,:kee[pmarks],跟随的命令保持位置标记不变 205 | cn,EX 命令,:laddb[uffer],通过缓冲区补充位置 206 | cn,EX 命令,:lad[dexpr],通过表达式补充位置 207 | cn,EX 命令,:laddf[ile],把位置加到当前位置列表里 208 | cn,EX 命令,:lan[guage],设置语言 (locale) 209 | cn,EX 命令,:la[st],转到参数列表的最后一个文件 210 | cn,EX 命令,:lat[er],转到新的改变,重做 211 | cn,EX 命令,:lb[uffer],分析位置并跳转到第一个位置 212 | cn,EX 命令,:lc[d],改变本地的目录 213 | cn,EX 命令,:lch[dir],改变本地的目录 214 | cn,EX 命令,:lcl[ose],关闭位置窗口 215 | cn,EX 命令,:lcs[cope],"类似于 "":cscope"",但使用位置列表" 216 | cn,EX 命令,:le[ft],左对齐行 217 | cn,EX 命令,:lefta[bove],使得分割的窗口出现在左侧或者上方 218 | cn,EX 命令,:let,给变量或选项赋值 219 | cn,EX 命令,:lex[pr],从表达式里读取位置并跳转到第一个 220 | cn,EX 命令,:lf[ile],从文件里读取位置并跳转到第一个 221 | cn,EX 命令,:lfir[st],转到指定的位置上,缺省第一个 222 | cn,EX 命令,:lgetb[uffer],从缓冲区里读取位置 223 | cn,EX 命令,:lgete[xpr],从表达式里读取位置 224 | cn,EX 命令,:lg[etfile],从文件里读取位置 225 | cn,EX 命令,:lgr[ep],运行 'grepprg' 并跳转到第一个匹配 226 | cn,EX 命令,:lgrepa[dd],类似于 :grep,但附加到当前列表上 227 | cn,EX 命令,:lh[elpgrep],"类似于 "":helpgrep"",但使用位置列表" 228 | cn,EX 命令,:l[ist],显示行 229 | cn,EX 命令,:ll,转到指定位置 230 | cn,EX 命令,:lla[st],转到指定位置,缺省最后一个 231 | cn,EX 命令,:lli[st],列出所有的位置 232 | cn,EX 命令,:lmak[e],执行外部命令 'makeprg' 并分析错误信息 233 | cn,EX 命令,:lm[ap],"类似于 "":map!"",但包括 Lang-Arg 模式" 234 | cn,EX 命令,:lmapc[lear],"类似于 "":mapclear!"",但包括 Lang-Arg 模式" 235 | cn,EX 命令,:lnew[er],跳到较新的位置列表 236 | cn,EX 命令,:lne[xt],跳到下一个位置 237 | cn,EX 命令,:lN[ext],转到位置列表的上一个位置 238 | cn,EX 命令,:lnf[ile],跳到下一个文件的第一个位置 239 | cn,EX 命令,:lNf[ile],转到上个文件的最近一个位置 240 | cn,EX 命令,:ln[oremap],"类似于 "":noremap!"",但包括 Lang-Arg 模式" 241 | cn,EX 命令,:loadk[eymap],载入后面的键盘映射表,直到 EOF 为止 242 | cn,EX 命令,:lo[adview],从文件里为当前窗口载入视图 243 | cn,EX 命令,:loc[kmarks],跟随的命令保持位置标记不变 244 | cn,EX 命令,:lockv[ar],给变量加锁 245 | cn,EX 命令,:lol[der],转到较旧的位置列表 246 | cn,EX 命令,:lope[n],打开位置窗口 247 | cn,EX 命令,:lpf[ile],转到上一个文件的最近的位置 248 | cn,EX 命令,:lp[revious],转到前一个位置 249 | cn,EX 命令,:lr[ewind],转到指定的位置,缺省第一个 250 | cn,EX 命令,:ls,列出所有的缓冲区 251 | cn,EX 命令,:lt[ag],跳转到标签,并把匹配的标签加到位置列表上 252 | cn,EX 命令,:lua,执行 |Lua| 命令 253 | cn,EX 命令,:luad[o],对每行都执行 Lua 命令 254 | cn,EX 命令,:luaf[ile],执行 |Lua| 脚本文件 255 | cn,EX 命令,:lu[nmap],"类似于 "":unmap!"",但包括 Lang-Arg 模式" 256 | cn,EX 命令,:lv[imgrep],在若干文件里搜索模式 257 | cn,EX 命令,:lvimgrepa[dd],类似于 :vimgrep,但附加到当前列表 258 | cn,EX 命令,:lw[indow],打开或关闭位置窗口 259 | cn,EX 命令,:mak[e],执行外部命令 'makeprg' 并分析其错误信息 260 | cn,EX 命令,:map,显示或者输入映射 261 | cn,EX 命令,:mapc[lear],清除所有普通和可视模式的映射 262 | cn,EX 命令,:ma[rk],设置位置标记 263 | cn,EX 命令,:marks,列出所有的位置标记 264 | cn,EX 命令,:mat[ch],定义要高亮显示的匹配的模式 265 | cn,EX 命令,:me[nu],输入新的菜单项 266 | cn,EX 命令,:menut[ranslate],增加菜单翻译项目 267 | cn,EX 命令,:mes[sages],显示以前显示的消息 268 | cn,EX 命令,:mk[exrc],写入当前映射和设置到文件 269 | cn,EX 命令,:mks[ession],写入会话信息到文件 270 | cn,EX 命令,:mksp[ell],生成 .spl 拼写文件 271 | cn,EX 命令,:mkvie[w],写入当前窗口的视图到文件 272 | cn,EX 命令,:mkv[imrc],写入当前映射和设置到文件 273 | cn,EX 命令,:mod[e],显示或者改变屏幕模式 274 | cn,EX 命令,:m[ove],移动行 275 | cn,EX 命令,:mzf[ile],执行 MzScheme 脚本文件 276 | cn,EX 命令,:mz[scheme],执行 MzScheme 命令 277 | cn,EX 命令,:nbc[lose],关闭当前 Netbeans 会话 278 | cn,EX 命令,:nb[key],传递一个键给 Netbeans 279 | cn,EX 命令,:nbs[art],打开一个新的 Netbeans 会话 280 | cn,EX 命令,:new,创建一个新的空白窗口 281 | cn,EX 命令,:n[ext],跳转到参数列表的下一个文件 282 | cn,EX 命令,:N[ext],转到参数列表的上一个文件 283 | cn,EX 命令,:nm[ap],"类似于 "":map"",但使用普通模式" 284 | cn,EX 命令,:nmapc[lear],清除普通模式的所有映射 285 | cn,EX 命令,:nme[nu],为普通模式增加菜单 286 | cn,EX 命令,:nn[oremap],"类似于 "":noremap"",但使用普通模式" 287 | cn,EX 命令,:nnoreme[nu],"类似于 "":noremenu"",但使用普通模式" 288 | cn,EX 命令,:noa[utocmd],跟随的命令不激活自动命令 289 | cn,EX 命令,:noh[lsearch],暂停 'hlsearch' 高亮 290 | cn,EX 命令,:norea[bbrev],输入不会被重新映射的缩写 291 | cn,EX 命令,:no[remap],输入不会被重新映射的映射 292 | cn,EX 命令,:noreme[nu],输入不会被重新映射的菜单 293 | cn,EX 命令,:norm[al],执行普通模式的命令 294 | cn,EX 命令,:nu[mber],显示文本行时给出行号 295 | cn,EX 命令,:nun[map],"类似于 "":unmap"",但使用普通模式" 296 | cn,EX 命令,:nunme[nu],删除普通模式的菜单 297 | cn,EX 命令,:ol[dfiles],列出 viminfo 文件中包含位置标记的文件 298 | cn,EX 命令,:om[ap],"类似于 "":map"",但使用操作符等待模式" 299 | cn,EX 命令,:omapc[lear],删除操作符等待模式的所有映射 300 | cn,EX 命令,:ome[nu],为操作符等待模式增加菜单 301 | cn,EX 命令,:on[ly],关闭当前窗口,除了当前的窗口以外 302 | cn,EX 命令,:ono[remap],"类似于 "":noremap"",但使用操作符等待模式" 303 | cn,EX 命令,:onoreme[nu],"类似于 "":noremenu"",但使用操作符等待模式" 304 | cn,EX 命令,:o[pen],启动打开模式 (没有实现) 305 | cn,EX 命令,:opt[ions],打开选项窗口 306 | cn,EX 命令,:ou[nmap],"类似于 "":unmap"",但使用操作符等待模式" 307 | cn,EX 命令,:ounme[nu],删除操作符等待模式的菜单 308 | cn,EX 命令,:ow[nsyntax],为本窗口设置新的局部语法高亮 309 | cn,EX 命令,:pc[lose],关闭预览窗口 310 | cn,EX 命令,:ped[it],在预览窗口编辑文件 311 | cn,EX 命令,:pe[rl],执行 Perl 命令 312 | cn,EX 命令,:perld[o],对每行都执行 Perl 命令 313 | cn,EX 命令,:po[p],跳转到标签栈较旧的项目上 314 | cn,EX 命令,:pop[up],根据名字弹出菜单 315 | cn,EX 命令,:pp[op],"在预览窗口 "":pop""" 316 | cn,EX 命令,:pre[serve],写入所有文本到交换文件 317 | cn,EX 命令,:prev[ious],跳转到参数列表里的上一个文件 318 | cn,EX 命令,:p[rint],显示行 319 | cn,EX 命令,:P[rint],显示行 320 | cn,EX 命令,:profd[el],停止剖视 (profile) 函数或脚本 321 | cn,EX 命令,:prof[ile],剖视 (profile) 函数或脚本 322 | cn,EX 命令,:pro[mptfind],打开 GUI 对话框进行搜索 323 | cn,EX 命令,:promptr[epl],打开 GUI 对话框进行搜索/替代 324 | cn,EX 命令,:ps[earch],"类似于 "":ijump"",但在预览窗口显示匹配" 325 | cn,EX 命令,:pt[ag],在预览窗口显示标签 326 | cn,EX 命令,:ptf[irst],在预览窗口 |:trewind| 327 | cn,EX 命令,:ptj[ump],在预览窗口 |:tjump| 和显示标签 328 | cn,EX 命令,:ptl[ast],在预览窗口 |:tlast| 329 | cn,EX 命令,:ptn[ext],在预览窗口 |:tnext| 330 | cn,EX 命令,:ptN[ext],在预览窗口 |:tNext| 331 | cn,EX 命令,:ptp[revious],在预览窗口 |:tprevious| 332 | cn,EX 命令,:ptr[ewind],在预览窗口 |:trewind| 333 | cn,EX 命令,:pts[elect],在预览窗口 |:tselect| 和显示标签 334 | cn,EX 命令,:pu[t],插入寄存器的内容到文本 335 | cn,EX 命令,:pw[d],显示当前目录 336 | cn,EX 命令,:py3,执行 Python 3 命令 337 | cn,EX 命令,:py3f[ile],执行 Python 3 脚本文件 338 | cn,EX 命令,:pyf[ile],执行 Python 脚本文件 339 | cn,EX 命令,:py[thon],执行 Python 命令 340 | cn,EX 命令,:python3,同 :py3 341 | cn,EX 命令,:qa[ll],退出 Vim 342 | cn,EX 命令,:q[uit],退出当前窗口 (如果只有一窗口,则退出 Vim) 343 | cn,EX 命令,:quita[ll],退出 Vim 344 | cn,EX 命令,:r[ead],读入文件到文本 345 | cn,EX 命令,:rec[over],从交换文件里恢复文件 346 | cn,EX 命令,:redi[r],重定向消息到文件或者寄存器 347 | cn,EX 命令,:red[o],重做一次撤销的改变 348 | cn,EX 命令,:redr[aw],强迫显示的重画 349 | cn,EX 命令,:redraws[tatus],强迫状态行的重画 350 | cn,EX 命令,:reg[isters],显示寄存器的内容 351 | cn,EX 命令,:res[ize],改变当前窗口的高度 352 | cn,EX 命令,:ret[ab],改变制表大小 353 | cn,EX 命令,:retu[rn],从用户函数返回 354 | cn,EX 命令,:rew[ind],转到参数列表的第一个文件 355 | cn,EX 命令,:ri[ght],右对齐文本 356 | cn,EX 命令,:rightb[elow],使得分割窗口出现在右侧或者下方 357 | cn,EX 命令,:rub[y],执行 Ruby 命令 358 | cn,EX 命令,:rubyd[o],对每行执行 Ruby 命令 359 | cn,EX 命令,:rubyf[ile],执行 Ruby 脚本文件 360 | cn,EX 命令,:rund[o],从文件里读入撤销信息 361 | cn,EX 命令,:ru[ntime],执行 'runtimepath' 里的 vim 脚本 362 | cn,EX 命令,:rv[iminfo],读取 viminfo 文件 363 | cn,EX 命令,:sal[l],为参数列表的每个文件打开窗口 364 | cn,EX 命令,:san[dbox],在沙盘里执行命令 365 | cn,EX 命令,:sa[rgument],分割窗口并转到参数列表的某一个文件 366 | cn,EX 命令,:sav[eas],用别的名字保存文件。 367 | cn,EX 命令,:sba[ll],为缓冲区列表的每个文件打开窗口 368 | cn,EX 命令,:sbf[irst],分割窗口并转到缓冲区列表的第一个文件 369 | cn,EX 命令,:sbl[ast],分割窗口并转到缓冲区列表的最后一个文件 370 | cn,EX 命令,:sbm[odified],分割窗口并转到缓冲区列表的修改过的文件 371 | cn,EX 命令,:sbn[ext],分割窗口并转到缓冲区列表的后一个文件 372 | cn,EX 命令,:sbN[ext],分割窗口并转到缓冲区列表的前一个文件 373 | cn,EX 命令,:sbp[revious],分割窗口并转到缓冲区列表的前一个文件 374 | cn,EX 命令,:sbr[ewind],分割窗口并转到缓冲区列表的第一个文件 375 | cn,EX 命令,:sb[uffer],分割窗口并转到缓冲区列表的某一个文件 376 | cn,EX 命令,:scripte[ncoding],执行过的 Vim 脚本使用的编码 377 | cn,EX 命令,:scrip[tnames],列出所有执行过的 Vim 脚本的名字 378 | cn,EX 命令,:scs[cope],分割窗口并执行 cscope 命令 379 | cn,EX 命令,:se[t],显示或设置选项 380 | cn,EX 命令,:setf[iletype],设置 'filetype',除非已经设置过 381 | cn,EX 命令,:setg[lobal],显示或者设置全局选项值 382 | cn,EX 命令,:setl[ocal],显示或者设置本地选项值 383 | cn,EX 命令,:sf[ind],分割当前窗口并编辑 'path' 的文件 384 | cn,EX 命令,:sfir[st],分割窗口并转到参数列表的第一个文件 385 | cn,EX 命令,:sh[ell],退到外壳程序 386 | cn,EX 命令,:sig[n],操作标号 387 | cn,EX 命令,:sil[ent],安静地运行命令 388 | cn,EX 命令,:sim[alt],Win32 GUI: 模拟 Windows ALT 键 389 | cn,EX 命令,:sla[st],分割窗口并转到参数列表的最后一个文件 390 | cn,EX 命令,:sl[eep],几秒内不作任何事 391 | cn,EX 命令,:sm[agic],带 'magic' 的 :substitute 392 | cn,EX 命令,:sma[p],"类似于 "":map"",但用于选择模式" 393 | cn,EX 命令,:smapc[lear],删除选择模式所有的映射 394 | cn,EX 命令,:sme[nu],增加选择模式菜单 395 | cn,EX 命令,:sn[ext],分割窗口并转到参数列表的下一个文件 396 | cn,EX 命令,:sN[ext],分割窗口并转到参数列表的前一个文件 397 | cn,EX 命令,:sni[ff],发送请求到 sniff 398 | cn,EX 命令,:sno[magic],带 'nomagic' 的 :substitute 399 | cn,EX 命令,:snor[emap],"类似于 "":noremap"",但用于选择模式" 400 | cn,EX 命令,:snoreme[nu],"类似于 "":noremenu"",但用于选择模式" 401 | cn,EX 命令,:sor[t],给行排序 402 | cn,EX 命令,:so[urce],从文件里读取 Vim 或 Ex 命令 403 | cn,EX 命令,:spelld[ump],分割窗口并用正确的单词填充 404 | cn,EX 命令,:spe[llgood],增加拼写的好词 405 | cn,EX 命令,:spelli[nfo],显示载入的拼写文件的信息 406 | cn,EX 命令,:spellr[epall],像上次 |z=| 那样,但替换所有的坏词 407 | cn,EX 命令,:spellu[ndo],删除好词或坏词 408 | cn,EX 命令,:spellw[rong],增加拼写错误 409 | cn,EX 命令,:sp[lit],分割当前窗口 410 | cn,EX 命令,:spr[evious],分割窗口并转到参数列表的前一个文件 411 | cn,EX 命令,:sre[wind],分割窗口并转到参数列表的第一个文件 412 | cn,EX 命令,:sta[g],分割窗口并跳转到标签上 413 | cn,EX 命令,:startg[replace],开始虚拟替换模式 414 | cn,EX 命令,:star[tinsert],开始插入模式 415 | cn,EX 命令,:startr[eplace],开始替换模式 416 | cn,EX 命令,:stj[ump],"执行 "":tjump"" 并分割窗口" 417 | cn,EX 命令,:st[op],暂停编辑器并退回外壳 418 | cn,EX 命令,:stopi[nsert],退出插入模式 419 | cn,EX 命令,:sts[elect],"执行 "":tselect"" 并分割窗口" 420 | cn,EX 命令,:s[ubstitute],查找和替代文本 421 | cn,EX 命令,:sun[hide],"等同于 "":unhide""" 422 | cn,EX 命令,:sunm[ap],"类似于 "":unmap"",但用于选择模式" 423 | cn,EX 命令,:sunme[nu],删除选择模式的菜单 424 | cn,EX 命令,:sus[pend],"等同于 "":stop""" 425 | cn,EX 命令,:sv[iew],分割窗口并以只读模式编辑文件 426 | cn,EX 命令,:sw[apname],显示当前交换文件的名字 427 | cn,EX 命令,:sync[bind],同步滚动绑定 428 | cn,EX 命令,:sy[ntax],语法高亮 429 | cn,EX 命令,:t,"等同于 "":copy""" 430 | cn,EX 命令,:tab,打开新窗口时建立新的标签页 431 | cn,EX 命令,:tabc[lose],关闭当前标签页 432 | cn,EX 命令,:tabdo,为每个标签页执行命令 433 | cn,EX 命令,:tabe[dit],在新标签页里编辑文件 434 | cn,EX 命令,:tabf[ind],寻找 'path' 里的文件,在新标签页里编辑之 435 | cn,EX 命令,:tabfir[st],转到第一个标签页 436 | cn,EX 命令,:tabl[ast],转到最后一个标签页 437 | cn,EX 命令,:tabm[ove],把标签页移到别的位置 438 | cn,EX 命令,:tabnew,在新标签页里编辑文件 439 | cn,EX 命令,:tabn[ext],转到下一个标签页 440 | cn,EX 命令,:tabN[ext],跳到上一个标签页 441 | cn,EX 命令,:tabo[nly],关闭所有除了当前标签页以外的所有标签页 442 | cn,EX 命令,:tabp[revious],转到前一个标签页 443 | cn,EX 命令,:tabr[ewind],转到第一个标签页 444 | cn,EX 命令,:tabs,列出标签页以及里面包含的内容 445 | cn,EX 命令,:ta[g],跳转到标签上 446 | cn,EX 命令,:tags,显示标签栈的内容 447 | cn,EX 命令,:tc[l],执行 Tcl 命令 448 | cn,EX 命令,:tcld[o],为每行执行 Tcl 命令 449 | cn,EX 命令,:tclf[ile],执行 Tcl 脚本文件 450 | cn,EX 命令,:te[aroff],撕下一个菜单 451 | cn,EX 命令,:tf[irst],转到第一个匹配的标签 452 | cn,EX 命令,:th[row],抛出例外 453 | cn,EX 命令,:tj[ump],"类似于 "":tselect"",只有一个匹配时直接跳转之" 454 | cn,EX 命令,:tl[ast],跳转到最后一个匹配的标签 455 | cn,EX 命令,:tm[enu],定义菜单的工具提示 456 | cn,EX 命令,:tn[ext],跳转到下一个匹配的标签 457 | cn,EX 命令,:tN[ext],跳转到上一个匹配的标签 458 | cn,EX 命令,:to[pleft],使得分割的窗口出现在顶部或者最左端 459 | cn,EX 命令,:tp[revious],跳转到上一个匹配的标签 460 | cn,EX 命令,:tr[ewind],跳转到第一个匹配的标签 461 | cn,EX 命令,:try,执行命令,错误或者例外时终止 462 | cn,EX 命令,:ts[elect],列出匹配的标签并从中选择一个 463 | cn,EX 命令,:tu[nmenu],删除菜单的工具提示 464 | cn,EX 命令,:una[bbreviate],删除缩写 465 | cn,EX 命令,:u[ndo],撤销最近的改变 466 | cn,EX 命令,:undoj[oin],将下一个改变和上一个撤销块合并 467 | cn,EX 命令,:undol[ist],列出撤销树的叶结点 468 | cn,EX 命令,:unh[ide],为缓冲区列表里每个载入的文件打开窗口 469 | cn,EX 命令,:unl[et],删除变量 470 | cn,EX 命令,:unlo[ckvar],给变量解锁 471 | cn,EX 命令,:unm[ap],删除映射 472 | cn,EX 命令,:unme[nu],删除菜单 473 | cn,EX 命令,:uns[ilent],非安静模式执行命令 474 | cn,EX 命令,:up[date],如果有修改,写回缓冲区 475 | cn,EX 命令,:verb[ose],执行命令,过程中设置 'verbose' 476 | cn,EX 命令,:ve[rsion],显示版本号和其它信息 477 | cn,EX 命令,:vert[ical],使得跟随的命令垂直分割 478 | cn,EX 命令,:v[global],对不匹配的行,执行命令 479 | cn,EX 命令,:vie[w],以只读方式编辑文件 480 | cn,EX 命令,:vim[grep],在若干文件里查找模式 481 | cn,EX 命令,:vimgrepa[dd],类似于 :vimgrep,但附加到当前列表 482 | cn,EX 命令,:vi[sual],"等同于 "":edit"",但关掉 ""Ex"" 模式" 483 | cn,EX 命令,:viu[sage],普通模式命令的总览 484 | cn,EX 命令,:vm[ap],"类似于 "":map"",但使用可视+选择模式" 485 | cn,EX 命令,:vmapc[lear],删除可视+选择模式所有的映射 486 | cn,EX 命令,:vme[nu],为可视+选择模式增加菜单 487 | cn,EX 命令,:vne[w],建立新的空白窗口,垂直分割 488 | cn,EX 命令,:vn[oremap],"类似于 "":noremap"",但使用可视+选择模式" 489 | cn,EX 命令,:vnoreme[nu],"类似于 "":noremenu"",但使用可视+选择模式" 490 | cn,EX 命令,:vs[plit],垂直分割当前窗口 491 | cn,EX 命令,:vu[nmap],"类似于 "":unmap"",但使用可视+选择模式" 492 | cn,EX 命令,:vunme[nu],删除可视+选择模式的菜单 493 | cn,EX 命令,:wa[ll],写回所有 (改变的) 缓冲区 494 | cn,EX 命令,:wh[ile],只要条件满足,执行循环体 495 | cn,EX 命令,:winc[md],执行窗口 (CTRL-W) 命令 496 | cn,EX 命令,:windo,为每个窗口执行命令 497 | cn,EX 命令,:winp[os],取得或者设置窗口位置 498 | cn,EX 命令,:wi[nsize],取得或者设置窗口大小 (已废弃) 499 | cn,EX 命令,:wn[ext],写回文件,然后跳转到参数列表的下一个文件 500 | cn,EX 命令,:wN[ext],写回文件,然后跳转到参数列表的前一个文件 501 | cn,EX 命令,:wp[revious],写回文件,然后跳转到参数列表的前一个文件 502 | cn,EX 命令,:wq,写回文件,然后退出窗口或者 Vim 503 | cn,EX 命令,:wqa[ll],写回所有 (改变的) 缓冲区然后退出 Vim 504 | cn,EX 命令,:w[rite],写回文件 505 | cn,EX 命令,:ws[verb],把动词通过 IPC 发送给 workshop 506 | cn,EX 命令,:wu[ndo],把撤销信息写入文件 507 | cn,EX 命令,:wv[iminfo],写入 viminfo 文件 508 | cn,EX 命令,:X,请求加密密钥 509 | cn,EX 命令,:xa[ll],"等同于 "":wqall""" 510 | cn,EX 命令,:x[it],如果缓冲区被改动,写入之。然后退出窗口或者 Vim 511 | cn,EX 命令,:xm[ap],"类似于 "":map"",但使用可视模式" 512 | cn,EX 命令,:xmapc[lear],删除可视模式的所有映射 513 | cn,EX 命令,:xme[nu],增加可视模式的菜单 514 | cn,EX 命令,:xn[oremap],"类似于 "":noremap"",但使用可视模式" 515 | cn,EX 命令,:xnoreme[nu],"类似于 "":noremenu"",但使用可视模式" 516 | cn,EX 命令,:xu[nmap],"类似于 "":unmap"",但使用可视模式" 517 | cn,EX 命令,:xunme[nu],删除可视模式的菜单 518 | cn,EX 命令,:y[ank],抽出行到寄存器 519 | cn,EX 命令,:z,显示一些行 520 | cn,'g' 开始的命令,g#,"类似于 ""#"",但不使用 ""<"" 和 "">""" 521 | cn,'g' 开始的命令,g&,"在所有行上重复上次的 "":s""" 522 | cn,'g' 开始的命令,g*,"类似于 ""*"",但不使用 ""<"" 和 "">""" 523 | cn,'g' 开始的命令,g<,显示上次的命令输出 524 | cn,'g' 开始的命令,g?,Rot13 编码操作符 525 | cn,'g' 开始的命令,g??,Rot13 编码当前行 526 | cn,'g' 开始的命令,g],:tselect 到光标所在的标签上 527 | cn,'g' 开始的命令,g^,'wrap' 关闭时转到当前行最左侧屏幕上可见的非空白字符'wrap' 打开时转到当前屏幕行最左侧的非空白字符 528 | cn,'g' 开始的命令,g$,'wrap' 关闭时转到当前行最右侧屏幕上可见的字符'wrap' 打开时转到当前屏幕行最右侧的字符 529 | cn,'g' 开始的命令,g0,'wrap' 关闭时转到当前行最左侧屏幕上可见的字符'wrap' 打开时转到当前屏幕行最左侧的字符 530 | cn,'g' 开始的命令,g8,显示光标所在的 UTF-8 字符的十六进制字节码 531 | cn,'g' 开始的命令,ga,打印光标所在处的字符的 ascii 值 532 | cn,'g' 开始的命令,g CTRL-],|:tjump| 到光标所在的标签上 533 | cn,'g' 开始的命令,g CTRL-A,只有在编译时加入了 MEM_PROFILE 时才有定义:转储内存内容 534 | cn,'g' 开始的命令,g CTRL-G,显示当前光标位置 535 | cn,'g' 开始的命令,g CTRL-H,启动选择列块模式 536 | cn,'g' 开始的命令,gd,转到当前函数里当前光标所在的单词的定义 537 | cn,'g' 开始的命令,gD,转到当前文件的光标所在单词的定义 538 | cn,'g' 开始的命令,g,"等同于 ""gj""" 539 | cn,'g' 开始的命令,ge,反向转到前一个单词的结尾处 540 | cn,'g' 开始的命令,gE,反向转移到上一个 WORD 的结尾处 541 | cn,'g' 开始的命令,g,"等同于 ""g$""" 542 | cn,'g' 开始的命令,gf,开始编辑当前光标所在的名字对应的文件 543 | cn,'g' 开始的命令,gF,开始编辑光标所在的文件名并跳转到文件名后的行号上。 544 | cn,'g' 开始的命令,g?g?,Rot13 编码当前行 545 | cn,'g' 开始的命令,gg,光标移动到第 N 行,缺省是第一行 546 | cn,'g' 开始的命令,gh,开始选择模式 547 | cn,'g' 开始的命令,gH,启动选择行模式 548 | cn,'g' 开始的命令,g,"等同于 ""g0""" 549 | cn,'g' 开始的命令,gi,"类似于 ""i"",但先移动到 |'^| 位置标记" 550 | cn,'g' 开始的命令,gI,"类似于 ""I"",但总是从第一列开始" 551 | cn,'g' 开始的命令,gj,"类似于 ""j"",但 'wrap' 打开时往下 N 个屏幕行" 552 | cn,'g' 开始的命令,gJ,连接行,不插入空格 553 | cn,'g' 开始的命令,gk,"类似于 ""k"",但 'wrap' 打开时往上 N 个屏幕行" 554 | cn,'g' 开始的命令,g,等同于 555 | cn,'g' 开始的命令,gm,转到屏幕行正中间的那个字符 556 | cn,'g' 开始的命令,g'{mark},类似于 |'|,但不改变跳转表 557 | cn,'g' 开始的命令,g`{mark},类似于 |`|,但不改表跳转表 558 | cn,'g' 开始的命令,g,等同于 559 | cn,'g' 开始的命令,g@{motion},调用 'operatorfunc' 560 | cn,'g' 开始的命令,g~{motion},改变 Nmove 文本的大小写 561 | cn,'g' 开始的命令,go,光标移动到缓冲区的第 N 个字节 562 | cn,'g' 开始的命令,gq{motion},排版 Nmove 文本 563 | cn,'g' 开始的命令,gR,进入虚拟替换模式 564 | cn,'g' 开始的命令,gr{char},虚拟替换 N 个字符为 {char} 565 | cn,'g' 开始的命令,g,等同于 566 | cn,'g' 开始的命令,gs,睡眠 N 秒 (缺省 1) 567 | cn,'g' 开始的命令,gu{motion},使得 Nmove 文本全部小写 568 | cn,'g' 开始的命令,gU{motion},使得 Nmove 文本全部大写 569 | cn,'g' 开始的命令,g,"等同于 ""gk""" 570 | cn,'g' 开始的命令,gv,重新选择上次的可视区域 571 | cn,'g' 开始的命令,gV,在执行选择模式下的映射或者菜单时,不要重复选择过去的可视区域 572 | cn,'g' 开始的命令,gw{motion},排版 Nmove 文本并保持光标位置 573 | cn,'g' 开始的命令,gx,执行光标下的文件名对应的应用程序 (仅限于|netrw| 插件) 574 | cn,'g' 开始的命令,"[""x]gp",在光标后面放置文本 [从寄存器 x] N 次,光标留在后面 575 | cn,'g' 开始的命令,"[""x]gP",在光标签放置文本 [从寄存器 x] N 次,光标留在插入文本之后 576 | cn,'z' 开始的命令,z+,"光标移动到第 N 行 (缺省为窗口之后的第一行),其它同 ""z""" 577 | cn,'z' 开始的命令,z-,重画,光标移动到窗口末行的第一个非空白字符 578 | cn,'z' 开始的命令,z.,重画,光标移动到窗口的中间行的第一个非空白字符 579 | cn,'z' 开始的命令,z=,给出拼写建议 580 | cn,'z' 开始的命令,z^,"光标移动到第 N 行 (缺省为窗口之前的一行),其它同 ""z-""" 581 | cn,'z' 开始的命令,za,打开关闭的折叠,或关闭打开的折叠 582 | cn,'z' 开始的命令,zA,递归打开一个关闭的折叠或关闭一个打开的折叠 583 | cn,'z' 开始的命令,zb,重画,光标在窗口底行 584 | cn,'z' 开始的命令,zc,关闭折叠 585 | cn,'z' 开始的命令,zC,递归关闭折叠 586 | cn,'z' 开始的命令,z,重画,光标移动到窗口的顶行的第一个非空白字符 587 | cn,'z' 开始的命令,zd,删除折叠 588 | cn,'z' 开始的命令,zD,递归删除折叠 589 | cn,'z' 开始的命令,ze,'wrap' 关闭时,水平滚动使得光标定位到屏幕的尾部 (最右侧) 590 | cn,'z' 开始的命令,zE,除去所有折叠 591 | cn,'z' 开始的命令,zF,为 N 行建立折叠 592 | cn,'z' 开始的命令,zf{motion},为 Nmove 文本建立折叠 593 | cn,'z' 开始的命令,zg,把单词标记为拼写正确 (good) 594 | cn,'z' 开始的命令,zG,把单词标记为拼写正确 (good) 595 | cn,'z' 开始的命令,zh,'wrap' 关闭时,水平右滚屏幕 N 个字符 596 | cn,'z' 开始的命令,z{height},重画,使得窗口高度为 {height} 行 597 | cn,'z' 开始的命令,zi,切换 'foldenable' 598 | cn,'z' 开始的命令,zj,移动到下一个折叠的开始处 599 | cn,'z' 开始的命令,zk,移动到前一个折叠的结束处 600 | cn,'z' 开始的命令,zl,'wrap' 关闭时,水平左滚屏幕 N 个字符 601 | cn,'z' 开始的命令,z,"等同于 ""zh""" 602 | cn,'z' 开始的命令,zm,从 'foldlevel' 减一 603 | cn,'z' 开始的命令,zM,设置 'foldlevel' 为零 604 | cn,'z' 开始的命令,zn,复位 'foldenable' 605 | cn,'z' 开始的命令,zN,置位 'foldenable' 606 | cn,'z' 开始的命令,zo,打开折叠 607 | cn,'z' 开始的命令,zO,递归打开折叠 608 | cn,'z' 开始的命令,zr,给 'foldlevel' 加一 609 | cn,'z' 开始的命令,zR,设置 'foldlevel' 为最大折叠级别 610 | cn,'z' 开始的命令,z,"等同于 ""zl""" 611 | cn,'z' 开始的命令,zs,'wrap' 关闭时,水平滚动使得光标定位到屏幕的起始处 (最左侧) 612 | cn,'z' 开始的命令,zt,重画,光标移动到窗口的顶部 613 | cn,'z' 开始的命令,zv,打开足够的折叠,使得当前行可见 614 | cn,'z' 开始的命令,zw,把单词标记为拼写错误 (wrong) 615 | cn,'z' 开始的命令,zW,把单词标记为拼写错误 (wrong) 616 | cn,'z' 开始的命令,zx,"重新应用 'foldlevel' 然后执行 ""zv""" 617 | cn,'z' 开始的命令,zX,重新应用 'foldlevel' 618 | cn,'z' 开始的命令,zz,重画,光标移动到窗口的中间行 619 | cn,可视模式,:,使用高亮行作为范围,开始一个命令行 620 | cn,可视模式,<,左移高亮行一个 'shiftwidth' 621 | cn,可视模式,=,用 {equalprg} 选项指定的外部程序过滤高亮行 622 | cn,可视模式,>,右移高亮行一个 'shiftwidth' 623 | cn,可视模式,~,改变高亮区域的大小写 624 | cn,可视模式,"a""",扩展高亮区域,使包含一个双引号字符串 625 | cn,可视模式,a',扩展高亮区域,使包含一个单引号字符串 626 | cn,可视模式,a(,等同于 ab 627 | cn,可视模式,a),等同于 ab 628 | cn,可视模式,a<,扩展高亮区域,使包含一个 <> 块 629 | cn,可视模式,a>,等同于 a< 630 | cn,可视模式,a[,扩展高亮区域,使包含一个 [] 块 631 | cn,可视模式,a],等同于 a[ 632 | cn,可视模式,a`,扩展高亮区域,使包含一个反引号字符串 633 | cn,可视模式,a{,等同于 aB 634 | cn,可视模式,a},等同于 aB 635 | cn,可视模式,A,列块模式下: 在高亮区域的所有行后附加相同的文本 636 | cn,可视模式,ab,扩展高亮区域,使包含一个 () 块 637 | cn,可视模式,aB,扩展高亮区域,使包含一个 {} 块 638 | cn,可视模式,ap,扩展高亮区域,使包含一个段落 639 | cn,可视模式,as,扩展高亮区域,使包含一个句子 640 | cn,可视模式,at,扩展高亮区域,使包含一个标签块 641 | cn,可视模式,aw,"扩展高亮区域,使包含 ""一个单词""" 642 | cn,可视模式,aW,"扩展高亮区域,使包含 ""一个 WORD""" 643 | cn,可视模式,,选择模式: 删除高亮区域 644 | cn,可视模式,c,删除高亮区域,并开始插入 645 | cn,可视模式,C,删除高亮行,并开始插入 646 | cn,可视模式,CTRL-],跳转到高亮的标签上 647 | cn,可视模式,CTRL-C,结束可视模式 648 | cn,可视模式,CTRL- CTRL-G,转到 'insertmode' 指定的模式 649 | cn,可视模式,CTRL- CTRL-N,结束可视模式 650 | cn,可视模式,CTRL-G,在可视模式和选择模式间切换 651 | cn,可视模式,CTRL-H,等同于 652 | cn,可视模式,CTRL-O,从选择模式切换到可视模式,只限于下个命令 653 | cn,可视模式,CTRL-V,使得可视模式面向列块,或者退出可视模式 654 | cn,可视模式,d,删除高亮区域 655 | cn,可视模式,D,删除高亮行 656 | cn,可视模式,,结束可视模式 657 | cn,可视模式,!{filter},通过外部命令 {filter} 过滤高亮行 658 | cn,可视模式,gJ,连接高亮行,不插入空格 659 | cn,可视模式,gq,排版高亮行 660 | cn,可视模式,gv,交换现在和以前的高亮区域 661 | cn,可视模式,"i""",扩展高亮区域,使包含一个双引号字符串 (但不含引号) 662 | cn,可视模式,i',扩展高亮区域,使包含一个单引号字符串 (但不含引号) 663 | cn,可视模式,i(,等同于 ib 664 | cn,可视模式,i),等同于 ib 665 | cn,可视模式,i<,扩展高亮区域,使包含内含 <> 块 666 | cn,可视模式,i>,等同于 i< 667 | cn,可视模式,i[,扩展高亮区域,使包含内含 [] 块 668 | cn,可视模式,i],等同于 i[ 669 | cn,可视模式,i`,扩展高亮区域,使包含一个反引号字符串 (但不含反引号) 670 | cn,可视模式,i{,等同于 iB 671 | cn,可视模式,i},等同于 iB 672 | cn,可视模式,I,列块模式: 在所有高亮行之前插入相同的文本 673 | cn,可视模式,ib,扩展高亮区域,使包含内含 () 块 674 | cn,可视模式,iB,扩展高亮区域,使包含内含 {} 块 675 | cn,可视模式,ip,扩展高亮区域,使包含内含段落 676 | cn,可视模式,is,扩展高亮区域,使包含内含句子 677 | cn,可视模式,it,扩展高亮区域,使包含内含标签块 678 | cn,可视模式,iw,"扩展高亮区域,使包含 ""内含单词""" 679 | cn,可视模式,iW,"扩展高亮区域,使包含 ""内含 WORD""" 680 | cn,可视模式,J,连接高亮行 681 | cn,可视模式,K,在高亮区域上运行 'keywordprg' 682 | cn,可视模式,o,移动光标到区域的另一侧 683 | cn,可视模式,O,水平移动到区域的另外一侧 684 | cn,可视模式,Q,不启动 Ex 模式 685 | cn,可视模式,r,删除高亮区域,并开始插入 686 | cn,可视模式,R,删除高亮行并开始插入 687 | cn,可视模式,s,删除高亮区域,并开始插入 688 | cn,可视模式,S,删除高亮行并开始插入 689 | cn,可视模式,u,使得高亮区域全变小写 690 | cn,可视模式,U,使得高亮区域全变大写 691 | cn,可视模式,v,使得可视模式面向字符,或者退出可视模式 692 | cn,可视模式,V,使得可视区域面向行,或者退出可视模式 693 | cn,可视模式,x,删除高亮区域 694 | cn,可视模式,X,删除高亮区域 695 | cn,可视模式,y,抽出高亮区域 696 | cn,可视模式,Y,抽出高亮行 697 | cn,命令行编辑,,删除光标前面的字符 698 | cn,命令行编辑,{char1} {char2},'digraph' 打开时,输入二合字母 699 | cn,命令行编辑,,光标左移一个单词 700 | cn,命令行编辑,,执行输入的命令 701 | cn,命令行编辑,,光标右移一个单词 702 | cn,命令行编辑,CTRL-,其它 不用 703 | cn,命令行编辑,CTRL-[,等同于 704 | cn,命令行编辑,CTRL-],激活缩写 705 | cn,命令行编辑,CTRL-^,切换 |:lmap| 映射的使用 706 | cn,命令行编辑,CTRL-_,'allowrevins' 打开时: 改变语言 (希伯来,波斯) 707 | cn,命令行编辑,CTRL-A,使用光标前面的模式进行补全,并插入所有的匹配 708 | cn,命令行编辑,CTRL- a - d,保留给扩展用 709 | cn,命令行编辑,CTRL-B,光标移动到命令行开始的地方 710 | cn,命令行编辑,CTRL-C,等同于 711 | cn,命令行编辑,CTRL- CTRL-G,转到 'insertmode' 指定的模式,放弃命令行 712 | cn,命令行编辑,CTRL- CTRL-N,转到普通模式,放弃命令行 713 | cn,命令行编辑,CTRL-D,列出光标前面模式的所有补全 714 | cn,命令行编辑,CTRL-E,光标移动到命令行结束的地方 715 | cn,命令行编辑,CTRL- e {expr},以 {expr} 的结果替换命令行 716 | cn,命令行编辑,CTRL-F,'cedit' 的缺省值: 打开命令行窗口;否则不用 717 | cn,命令行编辑,CTRL- f - z,保留给扩展用 718 | cn,命令行编辑,CTRL-H,等同于 719 | cn,命令行编辑,CTRL-I,等同于 720 | cn,命令行编辑,CTRL-J,等同于 721 | cn,命令行编辑,CTRL-K {char1} {char2},输入二合字母 722 | cn,命令行编辑,CTRL-L,补全光标前的模式,并插入最长的公共子串 723 | cn,命令行编辑,CTRL-M,等同于 724 | cn,命令行编辑,CTRL-N,使用 'wildchar' 并有多个匹配: 转到下一个匹配,不然: 等同于 725 | cn,命令行编辑,CTRL-O,不同 726 | cn,命令行编辑,CTRL-P,使用 'wildchar' 并有多个匹配: 转到上一个匹配,不然: 等同于 727 | cn,命令行编辑,CTRL-Q,等同于 CTRL-V,除非用于终端控制流 728 | cn,命令行编辑,"CTRL-R {0-9a-z""%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}",插入寄存器的内容或特殊对象到光标所在的地方,如同直接输入那样 729 | cn,命令行编辑,"CTRL-R CTRL-R {0-9a-z""%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}",按本义插入寄存器的内容或特殊对象到光标所在的地方 730 | cn,命令行编辑,CTRL-S,(用于终端控制流) 731 | cn,命令行编辑,CTRL-U,删除所有字符 732 | cn,命令行编辑,CTRL-V,按本义插入下一个非数字字符,或者插入其后三位数字所代表的单个字节。 733 | cn,命令行编辑,CTRL-W,删除光标前面的单词 734 | cn,命令行编辑,CTRL-Y,复制 (抽出) 无模式的选择 735 | cn,命令行编辑,,删除光标所在的字符 736 | cn,命令行编辑,,从历史中调入匹配光标前模式的后一个命令行 737 | cn,命令行编辑,,光标移动到命令行结束的地方 738 | cn,命令行编辑,,放弃命令行,不执行 739 | cn,命令行编辑,,光标移动到命令行开始的地方 740 | cn,命令行编辑,,切换插入/替换模式 741 | cn,命令行编辑,,光标左移 742 | cn,命令行编辑,,光标移动到鼠标点击的地方 743 | cn,命令行编辑,,等同于 744 | cn,命令行编辑,,等同于 745 | cn,命令行编辑,,等同于 746 | cn,命令行编辑,,光标右移 747 | cn,命令行编辑,,从历史中调入后一个命令行 748 | cn,命令行编辑,,光标左移一个单词 749 | cn,命令行编辑,,光标右移一个单词 750 | cn,命令行编辑,,等同于 CTRL-P 751 | cn,命令行编辑,,从历史中调入前一个命令行 752 | cn,命令行编辑,,如果 'wildchar' 是 : 补全光标前面的模式 753 | cn,命令行编辑,,从历史中调入匹配光标前模式的前一个命令行 754 | cn,命令行编辑,'wildchar',补全光标前面的模式 (缺省: ) 755 | cn,子模式的命令,CTRL-X CTRL-],补全标签 756 | cn,子模式的命令,CTRL-X CTRL-D,补全定义过的标识符 757 | cn,子模式的命令,CTRL-X CTRL-E,上滚 758 | cn,子模式的命令,CTRL-X CTRL-F,补全文件名 759 | cn,子模式的命令,CTRL-X CTRL-I,补全标识符 760 | cn,子模式的命令,CTRL-X CTRL-K,从字典补全标识符 761 | cn,子模式的命令,CTRL-X CTRL-L,补全完整的行 762 | cn,子模式的命令,CTRL-X CTRL-N,下一个补全 763 | cn,子模式的命令,CTRL-X CTRL-O,全能 (omni) 补全 764 | cn,子模式的命令,CTRL-X CTRL-P,上一个补全 765 | cn,子模式的命令,CTRL-X CTRL-S,拼写建议 766 | cn,子模式的命令,CTRL-X CTRL-T,从同义词词典补全标识符 767 | cn,子模式的命令,CTRL-X CTRL-U,用 'completefunc' 补全 768 | cn,子模式的命令,CTRL-X CTRL-V,如同 : 命令行那样补全 769 | cn,子模式的命令,CTRL-X CTRL-Y,下滚 770 | cn,子模式的命令,CTRL-X s,拼写建议 771 | cn,插入模式,0 CTRL-D,删除当前行的所有缩进 772 | cn,插入模式,,删除光标前的字符 773 | cn,插入模式,,光标移到文件尾后面 774 | cn,插入模式,{char1}{char2},输入二合字母 (只有打开了 'digraph' 选项才有效) 775 | cn,插入模式,,光标移到文件首 776 | cn,插入模式,,光标左移一个单词 777 | cn,插入模式,,开始新行 778 | cn,插入模式,,光标右移一个单词 779 | cn,插入模式,CTRL-@,插入最近插入的文本并停止插入 780 | cn,插入模式,CTRL-[,等同于 781 | cn,插入模式,CTRL-],切换缩写 782 | cn,插入模式,CTRL-^,切换 |:lmap| 映射的使用 783 | cn,插入模式,CTRL-_,'allowrevins' 打开时: 改变语言(希伯来语,波斯语等) {仅当编译时加入|+rightleft| 特性才有效} 784 | cn,插入模式,CTRL-A,插入最近插入的文本 785 | cn,插入模式,CTRL- a - z,保留给扩展用 786 | cn,插入模式,CTRL-C,退出插入模式,不检查缩写,除非置位了'insertmode'。 787 | cn,插入模式,CTRL- CTRL-G,进入 'insertmode' 指定的模式 788 | cn,插入模式,CTRL- CTRL-N,进入普通模式 789 | cn,插入模式,^ CTRL-D,删除当前行的所有缩进,在下一行恢复删除的缩进 790 | cn,插入模式,CTRL-D,在当前行删除一个 shiftwidth 的缩进 791 | cn,插入模式,CTRL-E,插入光标下方的字符 792 | cn,插入模式,CTRL-G CTRL-J,往下一行,到插入开始的列 793 | cn,插入模式,CTRL-G CTRL-K,往上一行,到插入开始的列 794 | cn,插入模式,CTRL-G ,往下一行,到插入开始的列 795 | cn,插入模式,CTRL-G j,往下一行,到插入开始的列 796 | cn,插入模式,CTRL-G k,往上一行,到插入开始的列 797 | cn,插入模式,CTRL-G u,开始新的不可撤消的编辑 798 | cn,插入模式,CTRL-G ,往上一行,到插入开始的列 799 | cn,插入模式,CTRL-H,等同于 800 | cn,插入模式,CTRL-I,等同于 801 | cn,插入模式,CTRL-J,等同于 802 | cn,插入模式,CTRL-K {char1} {char2},输入二合字母 803 | cn,插入模式,CTRL-L,'insertmode' 打开时: 离开插入模式 804 | cn,插入模式,CTRL-M,等同于 805 | cn,插入模式,CTRL-N,查找光标前面的关键字的下一个匹配 806 | cn,插入模式,CTRL-O,执行单个命令然后回到插入模式 807 | cn,插入模式,CTRL-P,查找光标前面的关键字的前一个匹配 808 | cn,插入模式,CTRL-Q,等同于 CTRL-V,除非它用于终端控制流 809 | cn,插入模式,"CTRL-R {0-9a-z""%#*:=}",插入寄存器内容 810 | cn,插入模式,"CTRL-R CTRL-O {0-9a-z""%#*:=}",按本义插入寄存器内容,而且不自动缩进 811 | cn,插入模式,"CTRL-R CTRL-P {0-9a-z""%#*:=}",按本义插入寄存器内容,而且修正缩进 812 | cn,插入模式,"CTRL-R CTRL-R {0-9a-z""%#*:=}",按本义插入寄存器内容 813 | cn,插入模式,CTRL-S,(用于终端控制流) 814 | cn,插入模式,CTRL-T,在当前行插入一个 shiftwidth 的缩进 815 | cn,插入模式,CTRL-U,删除当前行的所有输入字符 816 | cn,插入模式,CTRL-V {char},按本义插入下一个非数字字符 817 | cn,插入模式,CTRL-V {number},插入三位十进制数字代表的单个字节。 818 | cn,插入模式,CTRL-W,删除光标前的单词 819 | cn,插入模式,CTRL-X {mode},进入 CTRL-X 子模式,见 |i_CTRL-X_index| 820 | cn,插入模式,CTRL-Y,插入光标上方的字符 821 | cn,插入模式,CTRL-Z,'insertmode' 打开时: 暂停 Vim 822 | cn,插入模式,,删除光标所在的字符 823 | cn,插入模式,,光标下移一行 824 | cn,插入模式,,光标移到行尾后面 825 | cn,插入模式,,结束插入模式 (除非打开了 'insertmode') 826 | cn,插入模式,,等同于 827 | cn,插入模式,,停止插入模式显示帮助窗口 828 | cn,插入模式,,光标移到行首 829 | cn,插入模式,,切换插入/替换模式 830 | cn,插入模式,,光标左移一个字符 831 | cn,插入模式,,光标移到鼠标点击处 832 | cn,插入模式,,等同于 833 | cn,插入模式,,满屏下滚 834 | cn,插入模式,,满屏上滚 835 | cn,插入模式,,光标右移一个字符 836 | cn,插入模式,,窗口向下滚动三行 837 | cn,插入模式,,窗口向左滚动六列 838 | cn,插入模式,,窗口向右滚动六列 839 | cn,插入模式,,窗口向上滚动三行 840 | cn,插入模式,,等同于 841 | cn,插入模式,,光标左移一个单词 842 | cn,插入模式,,光标右移一个单词 843 | cn,插入模式,,窗口向下滚动完整一页 844 | cn,插入模式,,窗口向左滚动完整一页 845 | cn,插入模式,,窗口向右滚动完整一页 846 | cn,插入模式,,窗口向上滚动完整一页 847 | cn,插入模式,,等同于 848 | cn,插入模式,,插入 字符 849 | cn,插入模式,,光标上移一行 850 | cn,文本对象,"a""",双引号字符串 851 | cn,文本对象,a',单引号字符串 852 | cn,文本对象,a(,等同于 ab 853 | cn,文本对象,a),等同于 ab 854 | cn,文本对象,a<,"""一个 <> 块"" 从 '<' 到匹配的 '>'" 855 | cn,文本对象,a>,等同于 a< 856 | cn,文本对象,a[,"""一个 [] 块"" 从 '[' 到匹配的 ']'" 857 | cn,文本对象,a],等同于 a[ 858 | cn,文本对象,a`,反引号字符串 859 | cn,文本对象,a{,等同于 aB 860 | cn,文本对象,a},等同于 aB 861 | cn,文本对象,ab,"""一个块"" 从 ""[("" 到 ""])"" (带上括号)" 862 | cn,文本对象,aB,"""一个大块"" 从 ""[{"" 到 ""]}"" (带上括号)" 863 | cn,文本对象,ap,"""一个段落"" (带上空白)" 864 | cn,文本对象,as,"""一个句子"" (带上空白)" 865 | cn,文本对象,at,"""一个标签块"" (带上空白)" 866 | cn,文本对象,aw,"""一个单词"" (带上空白)" 867 | cn,文本对象,aW,"""一个字串"" (带上空白)" 868 | cn,文本对象,"i""",双引号字符串,不带引号 869 | cn,文本对象,i',单引号字符串,不带引号 870 | cn,文本对象,i(,等同于 ib 871 | cn,文本对象,i),等同于 ib 872 | cn,文本对象,i<,"""内含 <> 块"" 从 '<' 到匹配的 '>'" 873 | cn,文本对象,i>,等同于 i< 874 | cn,文本对象,i[,"""内含 [] 块"" 从 '[' 到匹配的 ']'" 875 | cn,文本对象,i],等同于 i[ 876 | cn,文本对象,i`,反引号字符串,不带反引号 877 | cn,文本对象,i{,等同于 iB 878 | cn,文本对象,i},等同于 iB 879 | cn,文本对象,ib,"""内含块"" 从 ""[("" 到 ""])""" 880 | cn,文本对象,iB,"""内含大块"" 从 ""[{"" 到 ""]}""" 881 | cn,文本对象,ip,"""内含段落""" 882 | cn,文本对象,is,"""内含句子""" 883 | cn,文本对象,it,"""内含标签块""" 884 | cn,文本对象,iw,"""内含单词""" 885 | cn,文本对象,iW,"""内含字串""" 886 | cn,方括号命令,[#,光标移动到前面第 N 个未匹配的 #if、#else 或者 #ifdef 887 | cn,方括号命令,[',光标移动到前面的小写位置标记,定位在它所在行的第一个非空白字符上 888 | cn,方括号命令,[(,光标移动到前面第 N 个未匹配的 '(' 889 | cn,方括号命令,[*,"等同于 ""[/""" 890 | cn,方括号命令,[/,光标移动到前面第 N 个 C 注释的开始处 891 | cn,方括号命令,[[,光标后退 N 个小节 892 | cn,方括号命令,[],光标后退 N 个 SECTION 893 | cn,方括号命令,[`,光标移动到前一个小写位置标记 894 | cn,方括号命令,[{,光标后退 N 个未匹配的 '{' 895 | cn,方括号命令,]#,光标移动到后面第 N 个未匹配的 #endif、#else 896 | cn,方括号命令,]',光标移动到后面的小写位置标记,定位在它所在行的第一个非空白字符上 897 | cn,方括号命令,](,光标移动到后面第 N 个未匹配的 ')' 898 | cn,方括号命令,]*,"等同于 ""]/""" 899 | cn,方括号命令,]/,光标移动到后面第 N 个 C 注释的结尾处 900 | cn,方括号命令,]],光标前进 N 个小节 901 | cn,方括号命令,]`,光标移动到后一个小写位置标记 902 | cn,方括号命令,]{,光标前进 N 个未匹配的 '}' 903 | cn,方括号命令,[c,光标后退 N 个更改开始的地方 904 | cn,方括号命令,]c,光标前进 N 个更改开始的地方 905 | cn,方括号命令,[ CTRL-D,跳转到第一个在当前文件和它包含的头文件里匹配光标所在的单词的 #define,从当前文件的头部开始 906 | cn,方括号命令,] CTRL-D,跳转到第一个在当前文件和它包含的头文件里匹配光标所在的单词的 #define,从光标位置开始 907 | cn,方括号命令,[ CTRL-I,跳转到第一个在当前文件和它包含的头文件里匹配光标所在单词的位置,从当前文件头部开始 908 | cn,方括号命令,] CTRL-I,跳转到第一个在当前文件和它包含的头文件里匹配光标所在单词的位置,从光标位置开始 909 | cn,方括号命令,[d,显示第一个在当前文件和它包含的头文件里匹配光标所在的单词的 #define,从当前文件的头部开始 910 | cn,方括号命令,]d,显示第一个在当前文件和它包含的头文件里匹配光标所在的单词的 #define,从光标位置开始 911 | cn,方括号命令,[D,列出在当前文件和它包含的头文件里匹配光标所在的单词的所有定义,从当前文件的头部开始 912 | cn,方括号命令,]D,列出在当前文件和它包含的头文件里匹配光标所在的单词的所有定义,从光标位置开始 913 | cn,方括号命令,[f,"等同于 ""gf""" 914 | cn,方括号命令,]f,"等同于 ""gf""" 915 | cn,方括号命令,[i,显示第一个在当前文件和它包含的头文件里匹配光标所在单词的位置,从当前文件的头部开始 916 | cn,方括号命令,]i,显示第一个在当前文件和它包含的头文件里匹配光标所在单词的位置,从光标位置开始 917 | cn,方括号命令,[I,列出在当前文件和它包含的头文件里匹配光标所在单词的所有位置,从当前文件的头部开始 918 | cn,方括号命令,]I,列出在当前文件和它包含的头文件里匹配光标所在单词的所有位置,从光标位置开始 919 | cn,方括号命令,[m,光标后退 N 个成员函数的开始 920 | cn,方括号命令,]m,光标前进 N 个成员函数的结尾 921 | cn,方括号命令,[,"等同于 ""[p""" 922 | cn,方括号命令,],"等同于 ""]p""" 923 | cn,方括号命令,[p,"类似于 ""P"",但调整当前行的缩进" 924 | cn,方括号命令,]p,"类似于 ""p"",但调整当前行的缩进" 925 | cn,方括号命令,[P,"等同于 ""[p""" 926 | cn,方括号命令,]P,"等同于 ""[p""" 927 | cn,方括号命令,[s,移动到前一个拼写错误的单词 928 | cn,方括号命令,]s,移动到后一个拼写错误的单词 929 | cn,方括号命令,[z,移动到打开的折叠的开始 930 | cn,方括号命令,]z,移动到打开的折叠的结尾处 931 | cn,普通模式,#,反向搜索第 N 次出现的光标所在的标识符 932 | cn,普通模式,%,查找本行下一个 (花/方) 括号,并转到其匹配的括号上,或者转到匹配的注释配对上,或者转到匹配的预处理命令上。 933 | cn,普通模式,&,重复上次 :s 934 | cn,普通模式,'',光标移动到最近一次跳转之前所在行的第一个CHAR 上 935 | cn,普通模式,'(,光标移动到当前句子的首部所在行的第一个 CHAR上 936 | cn,普通模式,'),光标移动到当前句子的尾部所在行的第一个 CHAR上 937 | cn,普通模式,'<,光标移动到当前缓冲区高亮区开始/曾经开始的行的第一个 CHAR 上。 938 | cn,普通模式,'>,光标移动到当前缓冲区高亮区结束/曾经结束的行的第一个 CHAR 上。 939 | cn,普通模式,'[,光标移动到当前缓冲区最近操作/放置的文本的首部所在行的第一个 CHAR 上 940 | cn,普通模式,'],光标移动到当前缓冲区最近操作/放置的文本的尾部所在行的第一个 CHAR 上 941 | cn,普通模式,'{,光标移动到当前段落的首部所在行的第一个 CHAR上 942 | cn,普通模式,'},光标移动到当前段落的尾部所在行的第一个 CHAR上 943 | cn,普通模式,(,光标回退 N 个句子 944 | cn,普通模式,),光标前进 N 个句子 945 | cn,普通模式,*,正向搜索第 N 次出现的光标所在的标识符 946 | cn,普通模式,+,等同于 947 | cn,普通模式,",",反方向重复最近的 f、t、F 或 T N 次 948 | cn,普通模式,-,光标移动到上方 N 行的第一个 CHAR 上 949 | cn,普通模式,.,重复最近的改变,其计数被 N 取代 950 | cn,普通模式,:,开始进入 Ex 命令 951 | cn,普通模式,;,重复最近的 f、t、F 或 T N 次 952 | cn,普通模式,<<,左移 N 行一个 'shiftwidth' 953 | cn,普通模式,==,"通过 ""indent"" 过滤 N 行" 954 | cn,普通模式,>>,右移 N 行一个 'shiftwidth' 955 | cn,普通模式,@:,"重复上次的 "":"" 命令 N 次" 956 | cn,普通模式,@@,重复上次的 @{a-z} N 次 957 | cn,普通模式,^,光标移动到本行的第一个 CHAR 上 958 | cn,普通模式,_,光标移动到下方第 N - 1 行的第一个 CHAR 上 959 | cn,普通模式,`(,光标移动当前句子的开始处 960 | cn,普通模式,`),光标移动当前句子的结束处 961 | cn,普通模式,`<,光标移动高亮区域的开始处 962 | cn,普通模式,`>,光标移动高亮区域的结束处 963 | cn,普通模式,`[,光标移动最近一次操作/放置的文本的开始处 964 | cn,普通模式,`],光标移动最近一次操作/放置的文本的结束处 965 | cn,普通模式,``,光标移动最近一次跳转的位置 966 | cn,普通模式,`{,光标移动当前段落的开始处 967 | cn,普通模式,`},光标移动当前段落的结束处 968 | cn,普通模式,{,光标反向移动 N 个段落 969 | cn,普通模式,|,光标移到第 N 列 970 | cn,普通模式,},光标正向移动 N 个段落 971 | cn,普通模式,~,'tildeop' 关闭时: 切换光标所在处开始的 N 个字符的大小写,并右移光标 N 个字符 972 | cn,普通模式,$,光标移动到往下第 N 行的行尾之后 973 | cn,普通模式,0,光标移动到本行的第一个字符上 974 | cn,普通模式,"1,2,3,4,5,6,7,8,9",附加于命令前,给出计数 975 | cn,普通模式,a,在光标处附加文本 N 次 976 | cn,普通模式,A,在行尾附加文本 N 次 977 | cn,普通模式,@{a-z},执行 {a-z} 寄存器的内容 N 次 978 | cn,普通模式,"""{a-zA-Z0-9.%#:-""}","指定下次删除、抽出或放置使用的寄存器{a-zA-Z0-9.%#:-""} (大写用于添加)({.%#:} 只能用于放置)" 979 | cn,普通模式,'{a-zA-Z0-9},光标移动到位置标记 {a-zA-Z0-9} 所在行的第一个 CHAR 上 980 | cn,普通模式,`{a-zA-Z0-9},光标移动到位置标记 {a-zA-Z0-9} 981 | cn,普通模式,b,光标反向移动 N 个单词 982 | cn,普通模式,B,光标反向移动 N 个 WORD (字串) 983 | cn,普通模式,,"等同于 ""h""" 984 | cn,普通模式,,"等同于 ""G""" 985 | cn,普通模式,[{char},方括号命令 (见下 |[|) 986 | cn,普通模式,]{char},方括号命令 (见下 |]|) 987 | cn,普通模式,,"等同于 ""gg""" 988 | cn,普通模式,,"等同于 ""b""" 989 | cn,普通模式,,""":ta"" 到鼠标点击所在的单词上" 990 | cn,普通模式,{count}%,转到文件的百分之 N 的位置上 991 | cn,普通模式,{count}:,开始进入 Ex 命令,给出从当前行开始到下方N-1 行为止的行范围 992 | cn,普通模式,{count},删除 {count} 最后的一位数字 993 | cn,普通模式,/,正向搜索最近一次搜索使用的 {pattern} 994 | cn,普通模式,,光标移到 N 行下面的第一个 CHAR 995 | cn,普通模式,?,反向搜索最近一次搜索使用的 {pattern} 996 | cn,普通模式,,"等同于 ""w""" 997 | cn,普通模式,,"等同于 ""CTRL-T""" 998 | cn,普通模式,CTRL-,其它 不用 999 | cn,普通模式,CTRL-],:ta 到光标所在的标识符 1000 | cn,普通模式,CTRL-^,"编辑第 N 个轮换文件 (等价于 "":e #N"")" 1001 | cn,普通模式,CTRL-A,把 N 加到光标所在/之后的数值上 1002 | cn,普通模式,CTRL- a - z,保留作扩展用 1003 | cn,普通模式,CTRL-B,反向 (Back) 滚动 N 屏 1004 | cn,普通模式,CTRL-C,终止当前的 (搜索) 命令 1005 | cn,普通模式,CTRL- CTRL-G,进入 'insertmode' 指定的模式 1006 | cn,普通模式,CTRL- CTRL-N,进入普通 (Normal) 模式 (空动作) 1007 | cn,普通模式,CTRL-D,向下 (Down) 滚动 N 行 (缺省: 半屏) 1008 | cn,普通模式,CTRL-E,向上滚动 N 行 (附加 (Extra) N 行) 1009 | cn,普通模式,CTRL-F,向前 (Forward) 滚动 N 屏 1010 | cn,普通模式,CTRL-G,显示当前文件名和位置 1011 | cn,普通模式,CTRL-H,"等同于 ""h""" 1012 | cn,普通模式,CTRL-I,等同于 1013 | cn,普通模式,CTRL-J,"等同于 ""j""" 1014 | cn,普通模式,CTRL-L,重画屏幕 1015 | cn,普通模式,CTRL-M,等同于 1016 | cn,普通模式,CTRL-N,"等同于 ""j""" 1017 | cn,普通模式,CTRL-O,跳转到跳转表里第 N 个较旧的项目 1018 | cn,普通模式,CTRL-P,"等同于 ""k""" 1019 | cn,普通模式,CTRL-Q,(用于终端控制流) 1020 | cn,普通模式,CTRL-R,重做 'u' 撤消的改变 1021 | cn,普通模式,CTRL-S,(用于终端控制流) 1022 | cn,普通模式,CTRL-T,跳转到标签列表的第 N 个较老的标签 (Tag) 1023 | cn,普通模式,CTRL-U,上滚 (Upwards) N 行 (缺省: 半屏) 1024 | cn,普通模式,CTRL-V,开始面向列块的可视 (Visual) 模式 1025 | cn,普通模式,CTRL-W {char},窗口命令,见 |CTRL-W| 1026 | cn,普通模式,CTRL-X,从光标所在/之后的数值上减去 N 1027 | cn,普通模式,CTRL-Y,下滚 N 行 1028 | cn,普通模式,CTRL-Z,暂停程序 (或者启动新的外壳) 1029 | cn,普通模式,do,"等同于 "":diffget""" 1030 | cn,普通模式,,"等同于 ""j""" 1031 | cn,普通模式,dp,"等同于 "":diffput""" 1032 | cn,普通模式,e,光标正向移动到第 N 个单词的结束处 1033 | cn,普通模式,E,光标正向移动到第 N 个 WORD 的结束处 1034 | cn,普通模式,,"等同于 ""$""" 1035 | cn,普通模式,,等同于 1036 | cn,普通模式,f{char},光标右移到第 N 次出现的 {char} 上 1037 | cn,普通模式,F{char},光标左移到第 N 次出现的 {char} 上 1038 | cn,普通模式,!!{filter},通过 {filter} 命令过滤 N 行 1039 | cn,普通模式,G,光标移动到第 N 行,缺省是最后一行 1040 | cn,普通模式,g{char},扩展命令,见下 |g| 1041 | cn,普通模式,h,光标左移 N 个字符 1042 | cn,普通模式,H,光标移动到屏幕顶部开始算的第 N 行 1043 | cn,普通模式,,打开帮助窗口 1044 | cn,普通模式,,"等同于 ""0""" 1045 | cn,普通模式,i,在光标前插入文本 N 次 1046 | cn,普通模式,I,在本行第一个 CHAR 之前插入文本 N 次 1047 | cn,普通模式,,"等同于 ""i""" 1048 | cn,普通模式,j,光标下移 N 行 1049 | cn,普通模式,J,连接 (Join) N 行;缺省为 2 1050 | cn,普通模式,k,光标上移 N 行 1051 | cn,普通模式,K,查找光标所在的关键字 (Keyword),使用'keywordprg' 的定义 1052 | cn,普通模式,l,光标右移 N 个字符 1053 | cn,普通模式,L,光标移动到屏幕底部开始算的第 N 行 1054 | cn,普通模式,,"等同于 ""h""" 1055 | cn,普通模式,,移动光标到鼠标点击处 1056 | cn,普通模式,M,光标移动到屏幕的中间一行 1057 | cn,普通模式,m{A-Za-z},在光标位置处设置位置标记 {A-Za-z} 1058 | cn,普通模式,,"等同于在鼠标点击处 ""gP""" 1059 | cn,普通模式,<{motion},左移 Nmove 文本行一个 'shiftwidth' 1060 | cn,普通模式,={motion},"通过 ""indent"" 过滤 Nmove 文本行" 1061 | cn,普通模式,>{motion},右移 Nmove 文本行一个 'shiftwidth' 1062 | cn,普通模式,~{motion},'tildeop' 打开时: 切换 Nmove 文本的大小写 1063 | cn,普通模式,!{motion}{filter}2,通过 {filter} 命令过滤 Nmove 文本 1064 | cn,普通模式,n,重复最近的 '/' 或 '?' N 次 1065 | cn,普通模式,N,反方向重复最近的 '/' 或 '?' N 次 1066 | cn,普通模式,,"等同于 ""j""" 1067 | cn,普通模式,o,在光标下方开始一个新行,并插入文本,重复 N次 1068 | cn,普通模式,O,在光标上方开始一个新行,并插入文本,重复 N次 1069 | cn,普通模式,,等同于 CTRL-F 1070 | cn,普通模式,,等同于 CTRL-B 1071 | cn,普通模式,/{pattern},正向搜索第 N 次出现的 {pattern} 1072 | cn,普通模式,?{pattern},反向搜索第 N 次出现的 {pattern} 1073 | cn,普通模式,q,(在记录时) 停止记录 1074 | cn,普通模式,q/,在命令行窗口里编辑 / 命令行 1075 | cn,普通模式,q:,在命令行窗口里编辑 : 命令行 1076 | cn,普通模式,q?,在命令行窗口里编辑 ? 命令行 1077 | cn,普通模式,Q,"切换到 ""Ex"" 模式" 1078 | cn,普通模式,"q{0-9a-zA-Z""}","记录输入的字符到命令寄存器 {0-9a-zA-Z""}(大写用于添加)" 1079 | cn,普通模式,R,进入替换模式: 覆盖存在的字符,重复输入文本N-1 次 1080 | cn,普通模式,r{char},用 {char} 替换 N 个字符 1081 | cn,普通模式,,"等同于 ""l""" 1082 | cn,普通模式,,开始可视模式,移动光标到鼠标点击处 1083 | cn,普通模式,,窗口向下滚动三行 1084 | cn,普通模式,,窗口向左滚动六列 1085 | cn,普通模式,,窗口向右滚动六列 1086 | cn,普通模式,,窗口向上滚动三行 1087 | cn,普通模式,,等同于 CTRL-F 1088 | cn,普通模式,,"等同于 ""b""" 1089 | cn,普通模式,,"等同于在鼠标点击处 ""*""" 1090 | cn,普通模式,,"等同于 ""l""" 1091 | cn,普通模式,,"等同于 ""w""" 1092 | cn,普通模式,,"等同于在鼠标点击处 ""#""" 1093 | cn,普通模式,,窗口向下滚动完整一页 1094 | cn,普通模式,,窗口向左滚动完整一页 1095 | cn,普通模式,,窗口向右滚动完整一页 1096 | cn,普通模式,,窗口向上滚动完整一页 1097 | cn,普通模式,,等同于 CTRL-B 1098 | cn,普通模式,,跳转到跳转表里第 N 个较新的项目 1099 | cn,普通模式,t{char},光标移动到右侧第 N 次出现的 {char} 之前 1100 | cn,普通模式,T{char},光标移动到左侧第 N 次出现的 {char} 之前 1101 | cn,普通模式,u,撤消改变 1102 | cn,普通模式,U,撤消一行内所有最近的改变 1103 | cn,普通模式,,"等同于 ""u""" 1104 | cn,普通模式,,"等同于 ""k""" 1105 | cn,普通模式,v,开始面向字符的可视 (Visual) 模式 1106 | cn,普通模式,V,进入面向行的可视 (Visual) 模式 1107 | cn,普通模式,w,光标前移 N 个单词 1108 | cn,普通模式,W,光标前移 N 个 WORD 1109 | cn,普通模式,"[""x]C","从光标位置到行尾部分,再加上 N-1 行进行修改[到缓冲区 (译者注: 应为寄存器,下同) x];等价于 ""c$""" 1110 | cn,普通模式,"[""x]cc",删除 N 行 [到缓冲区 (见上) x] 并开始编辑 1111 | cn,普通模式,"[""x]c{motion}",删除 Nmove 文本 [到缓冲区 (见上) x] 并开始编辑 1112 | cn,普通模式,"[""x]D","删除位置到行尾部分,再加上 N-1 行的字符 [到缓冲区 (见上) x];等价于 ""d$""" 1113 | cn,普通模式,"[""x]dd",删除 N 行 [到缓冲区 (见上) x]] 1114 | cn,普通模式,"[""x]","等同于 ""x""" 1115 | cn,普通模式,"[""x]d{motion}",删除 Nmove 文本 [到缓冲区 (见上) x] 1116 | cn,普通模式,"[""x]p",在光标后放置文本 [从寄存器 x] N 次 1117 | cn,普通模式,"[""x]P",在光标放置文本 [到缓冲区 (见上) x] N 次 1118 | cn,普通模式,"[""x]s",(替换) 删除 N 个字符 [到缓冲区 (见上) x] 并开始输入 1119 | cn,普通模式,"[""x]S","删除 N 行 [到缓冲区 (见上) x]] 并开始输入;等价于 ""cc""" 1120 | cn,普通模式,"[""x]x",删除光标开始的 N 个字符 [到缓冲区 (见上) x] 1121 | cn,普通模式,"[""x]X",删除光标前的 N 个字符 [到缓冲区 (见上) x] 1122 | cn,普通模式,"[""x]Y","抽出 N 行 [到缓冲区 (见上) x];等价于 ""yy""" 1123 | cn,普通模式,"[""x]y{motion}",抽出 Nmove 文本 [到缓冲区 (见上) x] 1124 | cn,普通模式,"[""x]yy",抽出 N 行 [到缓冲区 (见上) x] 1125 | cn,普通模式,z{char},'z' 开始的命令,见下 |z| 1126 | cn,普通模式,ZQ,无论如何退出当前文件 1127 | cn,普通模式,ZZ,如果修改过,保存当前文件,然后退出 1128 | cn,窗口命令,CTRL-W +,增加当前窗口高度 N 行 1129 | cn,窗口命令,CTRL-W -,减少当前窗口高度 N 行 1130 | cn,窗口命令,CTRL-W <,减少当前窗口宽度 N 列 1131 | cn,窗口命令,CTRL-W =,使得所有窗口同宽同高 1132 | cn,窗口命令,CTRL-W >,增加当前窗口宽度 N 列 1133 | cn,窗口命令,CTRL-W ],分割窗口并跳转到光标所在的标签上 1134 | cn,窗口命令,CTRL-W ^,分割窗口并编辑轮换文件 N 1135 | cn,窗口命令,CTRL-W _,设置当前窗口高度为 N (缺省: 尽量大) 1136 | cn,窗口命令,CTRL-W |,设置窗口宽度为 N 列 1137 | cn,窗口命令,CTRL-W },在预览窗口里显示光标所在的标签 1138 | cn,窗口命令,CTRL-W b,跳转到底部的窗口 1139 | cn,窗口命令,CTRL-W c,关闭当前窗口 (类似于 |:close|) 1140 | cn,窗口命令,CTRL-W CTRL-],"等同于 ""CTRL-W ]""" 1141 | cn,窗口命令,CTRL-W CTRL-^,"等同于 ""CTRL-W ^""" 1142 | cn,窗口命令,CTRL-W CTRL-_,"等同于 ""CTRL-W _""" 1143 | cn,窗口命令,CTRL-W CTRL-B,"等同于 ""CTRL-W b""" 1144 | cn,窗口命令,CTRL-W CTRL-C,"等同于 ""CTRL-W c""" 1145 | cn,窗口命令,CTRL-W CTRL-D,"等同于 ""CTRL-W d""" 1146 | cn,窗口命令,CTRL-W CTRL-F,"等同于 ""CTRL-W f""" 1147 | cn,窗口命令,CTRL-W CTRL-G,"等同于 ""CTRL-W g ..""" 1148 | cn,窗口命令,CTRL-W CTRL-H,"等同于 ""CTRL-W h""" 1149 | cn,窗口命令,CTRL-W CTRL-I,"等同于 ""CTRL-W i""" 1150 | cn,窗口命令,CTRL-W CTRL-J,"等同于 ""CTRL-W j""" 1151 | cn,窗口命令,CTRL-W CTRL-K,"等同于 ""CTRL-W k""" 1152 | cn,窗口命令,CTRL-W CTRL-L,"等同于 ""CTRL-W l""" 1153 | cn,窗口命令,CTRL-W CTRL-N,"等同于 ""CTRL-W n""" 1154 | cn,窗口命令,CTRL-W CTRL-O,"等同于 ""CTRL-W o""" 1155 | cn,窗口命令,CTRL-W CTRL-P,"等同于 ""CTRL-W p""" 1156 | cn,窗口命令,CTRL-W CTRL-Q,"等同于 ""CTRL-W q""" 1157 | cn,窗口命令,CTRL-W CTRL-R,"等同于 ""CTRL-W r""" 1158 | cn,窗口命令,CTRL-W CTRL-S,"等同于 ""CTRL-W s""" 1159 | cn,窗口命令,CTRL-W CTRL-T,"等同于 ""CTRL-W t""" 1160 | cn,窗口命令,CTRL-W CTRL-V,"等同于 ""CTRL-W v""" 1161 | cn,窗口命令,CTRL-W CTRL-W,"等同于 ""CTRL-W w""" 1162 | cn,窗口命令,CTRL-W CTRL-X,"等同于 ""CTRL-W x""" 1163 | cn,窗口命令,CTRL-W CTRL-Z,"等同于 ""CTRL-W z""" 1164 | cn,窗口命令,CTRL-W d,分割窗口并跳转到光标所在的定义上 1165 | cn,窗口命令,CTRL-W ,"等同于 ""CTRL-W j""" 1166 | cn,窗口命令,CTRL-W f,分割窗口并跳转到光标所在的文件名上 1167 | cn,窗口命令,CTRL-W F,分割窗口并编辑光标所在的文件名,然后跳转到文件名后给出的行号上。 1168 | cn,窗口命令,CTRL-W g ],分割窗口并在光标所在的标签上执行 |:tselect| 1169 | cn,窗口命令,CTRL-W g },在光标所在的标签上执行 |:ptjump| 1170 | cn,窗口命令,CTRL-W g CTRL-],分割窗口并在光标所在的标签上执行 |:tjump| 1171 | cn,窗口命令,CTRL-W g f,在新的标签页里编辑光标所在的文件名 1172 | cn,窗口命令,CTRL-W g F,在新的标签页里编辑光标所在的文件名然后跳转到文件名后给出的行号上。 1173 | cn,窗口命令,CTRL-W h,跳转到左面第 N 个的窗口 (在首个窗口上停止) 1174 | cn,窗口命令,CTRL-W H,移动当前窗口到最左端 1175 | cn,窗口命令,CTRL-W i,分割窗口并跳转到光标所在的标识符的声明上 1176 | cn,窗口命令,CTRL-W j,跳转到下面第 N 个的窗口 (在最后窗口上停止) 1177 | cn,窗口命令,CTRL-W J,移动当前窗口到最底部 1178 | cn,窗口命令,CTRL-W k,跳转到上面第 N 个的窗口 (在首个窗口上停止) 1179 | cn,窗口命令,CTRL-W K,移动当前窗口到最顶部 1180 | cn,窗口命令,CTRL-W l,跳转到右面第 N 个的窗口 (在最后窗口上停止) 1181 | cn,窗口命令,CTRL-W L,移动当前窗口到最右端 1182 | cn,窗口命令,CTRL-W ,"等同于 ""CTRL-W h""" 1183 | cn,窗口命令,CTRL-W n,打开新窗口,N 行高 1184 | cn,窗口命令,CTRL-W o,关闭除了当前窗口以外的所有窗口 (类似于|:only|) 1185 | cn,窗口命令,CTRL-W p,转到前面一个 (最近访问的) 窗口 1186 | cn,窗口命令,CTRL-W P,跳转到预览窗口 1187 | cn,窗口命令,CTRL-W q,退出当前窗口 (类似于 |:quit|) 1188 | cn,窗口命令,CTRL-W r,向下旋转窗口 N 次 1189 | cn,窗口命令,CTRL-W R,向上旋转窗口 N 次 1190 | cn,窗口命令,CTRL-W ,"等同于 ""CTRL-W l""" 1191 | cn,窗口命令,CTRL-W s,分割当前窗口为两部分,新的窗口 N 行高 1192 | cn,窗口命令,CTRL-W S,"等同于 ""CTRL-W s""" 1193 | cn,窗口命令,CTRL-W t,跳转到顶部窗口 1194 | cn,窗口命令,CTRL-W T,移动当前窗口到新标签页 1195 | cn,窗口命令,CTRL-W ,"等同于 ""CTRL-W k""" 1196 | cn,窗口命令,CTRL-W v,垂直分割当前窗口,新的窗口 N 列宽 1197 | cn,窗口命令,CTRL-W w,转到后面第 N 个窗口 (回绕) 1198 | cn,窗口命令,CTRL-W W,跳转到前面第 N 个窗口 (回绕) 1199 | cn,窗口命令,CTRL-W x,交换当前和第 N 个窗口 (缺省: 下一个窗口) 1200 | cn,窗口命令,CTRL-W z,关闭预览窗口 1201 | -------------------------------------------------------------------------------- /doc/csv/jp.csv: -------------------------------------------------------------------------------- 1 | language,mode,command,description 2 | jp,Exコマンドの範囲,%,"1,$と同じ(=ファイル全体)" 3 | jp,Exコマンドの範囲,*,"'<,'>と同じ(=ビジュアルモードの選択範囲)" 4 | jp,Exコマンドの範囲,",",2つの行の範囲 5 | jp,Exコマンドの範囲,.,現在行 6 | jp,Exコマンドの範囲,;,同上。最初の指定行から次の指定範囲まで 7 | jp,Exコマンドの範囲,$,ファイルの最終行 8 | jp,Exコマンドの範囲,+[num],直前の行指定(デフォルト:1)に[num]を加算したもの 9 | jp,Exコマンドの範囲,-[num],直前の行指定(デフォルト:1)から[num]を減算したもの 10 | jp,Exコマンドの範囲,{number},ファイル中の行番号 11 | jp,Exコマンドの範囲,/{pattern}[/],{pattern} に合致する行の次の行 12 | jp,Exコマンドの範囲,?{pattern}[?],{pattern} に合致する行の前の行 13 | jp,Exコマンドの範囲,'t,マーク t の行 14 | jp,Undo/Redo コマンド,N CTRL-R,最後の N 回分のアンドゥを取り消す(redo) 15 | jp,Undo/Redo コマンド,N u,最後の N 回分の作業をアンドゥ 16 | jp,Undo/Redo コマンド,U,行全体への変更を取り消す 17 | jp,'wrap'がoffになっている時のみ有効,N zh,画面を N 文字、右へスクロール 18 | jp,'wrap'がoffになっている時のみ有効,N zH,画面桁数の半分だけ、右へスクロール 19 | jp,'wrap'がoffになっている時のみ有効,N zl,画面を N 文字、左へスクロール 20 | jp,'wrap'がoffになっている時のみ有効,N zL,画面桁数の半分だけ、左へスクロール 21 | jp,!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行,:e[dit][!],現在のバッファ内容を再読み込み 22 | jp,!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行,:e[dit][!] {file},{file}を編集 23 | jp,!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行,:ene[w][!],新たな名前なしバッファを編集 24 | jp,!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行,:fin[d][!] {file},{file} を'path' から探し、編集 25 | jp,コマンドラインの編集,,カーソルの直前の文字を削除 26 | jp,コマンドラインの編集,CTRL-B/CTRL-E,カーソルを行頭、行末に移動 27 | jp,コマンドラインの編集,"CTRL-R {0-9a-z""%#:-=}",レジスタの内容を挿入する 28 | jp,コマンドラインの編集,CTRL-U,全文字を削除 29 | jp,コマンドラインの編集,CTRL-V {char},{char}を文字として挿入する(CTRL文字など) 30 | jp,コマンドラインの編集,CTRL-V {number},文字コードを10進数入力する(最大3桁まで) 31 | jp,コマンドラインの編集,CTRL-W,カーソルの直前の文字を削除 32 | jp,コマンドラインの編集,,カーソル位置の文字を削除 33 | jp,コマンドラインの編集,,コマンドラインを破棄する('wildchar'がの場合は2回押す) 34 | jp,コマンドラインの編集,:his[tory],コマンドライン履歴を表示 35 | jp,コマンドラインの編集,/,カーソルを左右に移動 36 | jp,コマンドラインの編集,/,カーソルを単語単位で左右に移動 37 | jp,コマンドラインの編集,/,コマンドラインの履歴を呼び出す 38 | jp,コマンドラインの編集,/,現在のコマンドで始まるコマンドラインの履歴を呼び出す 39 | jp,コマンドラインの編集/文脈依存の補完機能,CTRL-A,現在のカーソルの直前のパターンに合致する全ての名前を挿入 40 | jp,コマンドラインの編集/文脈依存の補完機能,CTRL-D,現在のカーソルの直前のパターンに合致する全ての名前の一覧を表示 41 | jp,コマンドラインの編集/文脈依存の補完機能,CTRL-L,現在のカーソルの直前のパターンに合致するもののうち、共通部分を挿入 42 | jp,さまざまなコマンド,:browse {command},ファイルを開く時や保存する時に選択ダイアログ画面を使う。 43 | jp,さまざまなコマンド,:confirm {command},終了時、保存時などに保存していない変更やリードオンリーの確認をする 44 | jp,さまざまなコマンド,CTRL-Break,MS-DOS: 検索中:検索を中止 45 | jp,さまざまなコマンド,CTRL-C,検索中:検索を中止 46 | jp,さまざまなコマンド,CTRL-G,現在の(パス名+)ファイル名とカーソル位置を表示 47 | jp,さまざまなコマンド,CTRL-L,画面の再描画 48 | jp,さまざまなコマンド,,回数指定中: 最後の文字を削除 49 | jp,さまざまなコマンド,g8,utf-8エンコーディング用:カーソル下の文字のバイト列を16進で表示する。 50 | jp,さまざまなコマンド,ga,カーソル位置のASCII文字コードを10進、16進、8進で表示 51 | jp,さまざまなコマンド,g CTRL-G,カーソル桁数、行数、単語数、文字数を表示 52 | jp,さまざまなコマンド,:mode N MS-DOS:,"画面モードを N (数字,C80,C4350,など)に" 53 | jp,さまざまなコマンド,:norm[al][!],{commands}通常モードコマンドを実行 54 | jp,さまざまなコマンド,Q,"""Ex""モードに移行" 55 | jp,さまざまなコマンド,:redir >{file},メッセージを{file}にリダイレクト 56 | jp,さまざまなコマンド,:silent[!] {command},{command} を寡黙に実行 57 | jp,さまざまなコマンド,:ve[rsion],バージョン情報を表示 58 | jp,シンタックスハイライト,:filetype on,ファイルタイプの検出を有効にするシンタックスハイライトは有効にならない 59 | jp,シンタックスハイライト,:filetype plugin indent on,ファイルタイプの検出を有効にする各設定とオートインデントを有効にする 60 | jp,シンタックスハイライト,:highlight clear,全てのハイライトを削除する 61 | jp,シンタックスハイライト,:syntax clear,全てのシンタックスを削除する 62 | jp,シンタックスハイライト,:syntax [list],現在のシンタックスのアイテムを一覧する 63 | jp,シンタックスハイライト,:syntax off,シンタックスハイライトの使用停止 64 | jp,シンタックスハイライト,:syntax on,シンタックスハイライトの使用開始 65 | jp,スクロール,N CTRL-B,画面を N ページ分上方向スクロール 66 | jp,スクロール,N CTRL-D,画面を N 行下方向スクロール(デフォルトは画面の半分) 67 | jp,スクロール,N CTRL-E,画面を N 行下方向スクロール(デフォルトは1) 68 | jp,スクロール,N CTRL-F,画面を N ページ分下方向スクロール 69 | jp,スクロール,N CTRL-U,画面を N 行分上方向スクロール(デフォルトは画面の半分) 70 | jp,スクロール,N CTRL-Y,画面を N 行分上方向スクロール(デフォルトは1) 71 | jp,スクロール,z-,or zb 現在行を画面の最下行にして、再描画 72 | jp,スクロール,z.,or zz 現在行を画面の中央にして、再描画 73 | jp,スクロール,z or zt,現在行を画面の1行目にして、再描画 74 | jp,タグの利用,:[count]po[p][!],タグリストの [count] 番目に古いタグにジャンプ 75 | jp,タグの利用,:[count]ta[g][!],タグリストの[count]番目に新しいタグにジャンプ 76 | jp,タグの利用,:[count]tn[ext][!],[count] 個分、次のタグにジャンプ 77 | jp,タグの利用,:[count]tp[revious][!],[count]個分、前のタグにジャンプ 78 | jp,タグの利用,:[count]tr[ewind][!] [count],番目に一致するタグにジャンプ 79 | jp,タグの利用,CTRL-],変更がされていない限り、カーソル位置にあるタグにジャンプ 80 | jp,タグの利用,CTRL-W },CTRL-] と同様だがプレビュー画面にジャンプ 81 | jp,タグの利用,CTRL-W z,タグプレビュー画面を閉じる。 82 | jp,タグの利用,:lt[ag][!] [tag],タグ [tag] にジャンプし、マッチしたタグをロケーションリストに加える。 83 | jp,タグの利用,N CTRL-T,タグリストの N 番目に古いタグにジャンプ 84 | jp,タグの利用,:pc[lose],タグプレビュー画面を閉じる。 85 | jp,タグの利用,:pt[ag] {tag},{tag}タグを見るためのプレビュー画面を開く 86 | jp,タグの利用,:ptj[ump],""":tjump""と同様だがプレビュー画面にジャンプ" 87 | jp,タグの利用,:pts[elect],""":tselect""と同様だがプレビュー画面にジャンプ" 88 | jp,タグの利用,:tags,タグリストを一覧表示 89 | jp,タグの利用,:ta[g][!] {tag},{tag}で指定したタグにジャンプ 90 | jp,タグの利用,:tj[ump][!] [tag],指定のタグ [tag] にジャンプ。もし、合致するタグが複数ある時は一覧から選択 91 | jp,タグの利用,:tl[ast][!],直前に一致したタグにジャンプ 92 | jp,タグの利用,:ts[elect][!] [tag],タグに合致する一覧を表示し、ジャンプ先を選択 93 | jp,テキスト文脈単位の移動,N (,N センテンス分、前に戻る 94 | jp,テキスト文脈単位の移動,N ),N センテンス(文)分、先に進む 95 | jp,テキスト文脈単位の移動,N [#,"N 個目の呼応していない""#if""や""#else""まで戻る" 96 | jp,テキスト文脈単位の移動,N [(,N 個目の呼応していない'('まで戻る 97 | jp,テキスト文脈単位の移動,N [*,N 個前のコメントの先頭まで戻る 98 | jp,テキスト文脈単位の移動,N [[,N セクション(章)分、前に戻り、その先頭に移動 99 | jp,テキスト文脈単位の移動,N [],N セクション(章)分、前に戻り、その末尾に移動 100 | jp,テキスト文脈単位の移動,N [{,N 個目の呼応していない'{'まで戻る 101 | jp,テキスト文脈単位の移動,N ]#,"N 個目の呼応していない""#else""や""#endif""まで進む" 102 | jp,テキスト文脈単位の移動,N ]),N 個目の呼応していない')'まで進む 103 | jp,テキスト文脈単位の移動,N ]*,N 個先のコメントの末尾まで進む 104 | jp,テキスト文脈単位の移動,N ][,N セクション(章)分、先に進み、その末尾に移動 105 | jp,テキスト文脈単位の移動,N ]],N セクション(章)分、先に進み、その先頭に移動 106 | jp,テキスト文脈単位の移動,N ]},N 個目の呼応していない'}'まで進む 107 | jp,テキスト文脈単位の移動,N {,N パラグラフ分、前に戻る 108 | jp,テキスト文脈単位の移動,N },N パラグラフ(段落)分、先に進む 109 | jp,テキスト文脈単位の移動,N b,N 個目の単語分、前に戻る 110 | jp,テキスト文脈単位の移動,N B,空白で区切られた単語(=|WORD|) N 個分、前に戻る 111 | jp,テキスト文脈単位の移動,N e,N 個目の単語のお尻まで進む 112 | jp,テキスト文脈単位の移動,N E,空白で区切られた単語(=|WORD|) N 個目のお尻まで進む 113 | jp,テキスト文脈単位の移動,N ge,N 個目の単語のお尻まで戻る 114 | jp,テキスト文脈単位の移動,N gE,空白で区切られた単語(=|WORD|) N 個目のお尻まで戻る 115 | jp,テキスト文脈単位の移動,N [m,N 個前のメソッドの先頭まで戻る(Java用) 116 | jp,テキスト文脈単位の移動,N ]m,N 個先のメソッドの先頭まで進む(Java用) 117 | jp,テキスト文脈単位の移動,N [M,N 個前のメソッドの末尾まで戻る(Java用) 118 | jp,テキスト文脈単位の移動,N ]M,N 個先のメソッドの末尾まで進む(Java用) 119 | jp,テキスト文脈単位の移動,N w,N 個目の単語分、先に進む 120 | jp,テキスト文脈単位の移動,N W,空白で区切られた単語(=|WORD|) N 個分、先に進む 121 | jp,パターン検索,gd,カーソル位置の識別子のローカル宣言に移動 122 | jp,パターン検索,gD,カーソル位置の識別子のグローバル宣言に移動 123 | jp,パターン検索,N #,カーソル位置にある単語を上方向に検索 124 | jp,パターン検索,N *,カーソル位置にある単語を下方向に検索 125 | jp,パターン検索,N /,直前と同じ条件の検索を下方向に対して実施 126 | jp,パターン検索,N ?,直前と同じ条件の検索を上方向に対して実施 127 | jp,パターン検索,N g#,"""#""と同じだが、部分的な一致を検索" 128 | jp,パターン検索,N g*,"""*""と同じだが、部分的な一致を検索" 129 | jp,パターン検索,N n,直前の検索を再実行 130 | jp,パターン検索,N N,直前の検索を逆方向に再実行 131 | jp,パターン検索,N /{pattern}[/[offset]],N 回目の{pattern}を含む個所を下方向に検索 132 | jp,パターン検索,N ?{pattern}[?[offset]],N 回目の{pattern}を含む個所を上方向に検索 133 | jp,バッファ管理コマンド,:badd {fname},ファイル名{fname}をバッファ一覧に追加 134 | jp,バッファ管理コマンド,:ball,or :sball 全引数/バッファを編集 135 | jp,バッファ管理コマンド,:bdelete[!] [N],[N]番バッファを開放してバッファ一覧から削除 136 | jp,バッファ管理コマンド,:buffers,or :files 全バッファとファイル名の一覧 137 | jp,バッファ管理コマンド,:bunload[!] [N],[N]番バッファをメモリから開放 138 | jp,バッファ管理コマンド,:unhide,or :sunhide 読み込み中の全バッファを編集 139 | jp,ビジュアルモード,A,選択している全行の後ろに、同じ文字列を挿入する。 140 | jp,ビジュアルモード,CTRL-V,矩形単位のビジュアルモードを開始 } コマンドを実行 141 | jp,ビジュアルモード,gv,直前の選択範囲を選んだ状態でビジュアルモードを開始 142 | jp,ビジュアルモード,I,選択している全行の前に、同じ文字列を挿入する。 143 | jp,ビジュアルモード,o,カーソル位置と選択範囲の開始位置を入れ替え 144 | jp,ビジュアルモード,v,文字単位のビジュアルモードを開始 } カーソルを動かして 145 | jp,ビジュアルモード,V,行単位のビジュアルモードを開始 } 選択した範囲に対し 146 | jp,ファイル編集,:cd -,直前のカレントディレクトリに戻る 147 | jp,ファイル編集,:cd [path],カレントディレクトリを [path] に変更 148 | jp,ファイル編集,:f[ile],現在のファイル名とカーソル位置を表示 149 | jp,ファイル編集,:f[ile] {name},現在のファイル名を{name}に変更 150 | jp,ファイル編集,:files,別ファイル一覧を表示 151 | jp,ファイル編集,gf,or ]f カーソル下にある名前のファイルを編集 152 | jp,ファイル編集,N CTRL-^,"別ファイル N を編集("":e #N""と同じ)" 153 | jp,ファイル編集,:pwd,カレントディレクトリを表示 154 | jp,マーク,"`""",前回このファイルを編集した時の場所に移動 155 | jp,マーク,`.,このファイルで最後に変更した場所に移動 156 | jp,マーク,`<,(直前の)ビジュアルエリアの先頭に移動 157 | jp,マーク,`>,(直前の)ビジュアルエリアの末尾に移動 158 | jp,マーク,`[,直前に繰作もしくはプットした文字列の先頭に移動 159 | jp,マーク,`],直前に繰作もしくはプットした文字列の末尾に移動 160 | jp,マーク,``,直前のジャンプコマンドの前の場所に移動 161 | jp,マーク,`{0-9},vimが前回終了した時の場所に移動 162 | jp,マーク,`{a-z},編集中のファイルのマーク{a-z} に移動 163 | jp,マーク,`{A-Z},任意のファイルのマーク{A-Z} に移動 164 | jp,マーク,"'{a-zA-Z0-9[]'""<>.}",` と同じだが、その行の先頭の非空白文字まで移動する点が異なる。 165 | jp,マーク,:ju[mps],ジャンプリストを一覧表示 166 | jp,マーク,:marks,現在設定されているマークを一覧表示 167 | jp,マーク,m{a-zA-Z},現在の場所を {a-zA-Z} としてマーク 168 | jp,マーク,N CTRL-I,ジャンプリストの N 番目に新しい場所に移動 169 | jp,マーク,N CTRL-O,ジャンプリストの N 番目に古い場所に移動 170 | jp,上下の移動,N %,ファイルの N パーセント目に移動。このコマンドは N の指定が必須。無指定の場合は|%|コマンド扱い。 171 | jp,上下の移動,N +,"下に N 行移動し、行頭の非空白文字に移動(CTRL-M, キーでも同じ)" 172 | jp,上下の移動,N -,上に N 行移動し、行頭の非空白文字に移動 173 | jp,上下の移動,N _,"下に N-1 行移動し,行頭の非空白文字に移動" 174 | jp,上下の移動,N G,N 行目(デフォルトは最後の行)に移動し、行頭の非空白文字に移動 175 | jp,上下の移動,N gg,N 行目(デフォルトは1行目)に移動し、行頭の非空白文字に移動 176 | jp,上下の移動,N gj,画面上で N 行下に移動。(複数行にまたがる行がある場合 177 | jp,上下の移動,N gk,"画面上で N 行上に移動。(複数行にまたがる行がある場合の動きが""k""と異なる)" 178 | jp,上下の移動,N j,"下に N 行移動 (CTRL-J, CTRL-N, , でも同じ)" 179 | jp,上下の移動,N k,"上に N 行移動 (CTRL-P, キーでも同じ)" 180 | jp,保存と終了,:cq,保存せずに終了し、エラーコードを返す。 181 | jp,保存と終了,CTRL-Z,""":stop""と同じ。" 182 | jp,保存と終了,:qa[ll],変更がない限りvimを終了 183 | jp,保存と終了,:qa[ll]!,変更があってもvimを強制終了 184 | jp,保存と終了,:q[uit],変更がなければ、現在のバッファを終了。他にヘルプ以外のバッファがなければvimを終了。 185 | jp,保存と終了,:q[uit]!,変更を破棄して、現在のバッファを終了。他にヘルプ以外のバッファがなければvimを終了。 186 | jp,保存と終了,:[range]up[date][!],変更されていれば、上書き保存 187 | jp,保存と終了,:[range]w[rite][!],現在のファイルに保存 188 | jp,保存と終了,:[range]w[rite][!] >>,現在のファイルに追記 189 | jp,保存と終了,:[range]w[rite] !{cmd},[range]の行を標準入力として{cmd}を実行。 190 | jp,保存と終了,:[range]w[rite] {file},{file}がなければ、{file}に保存。 191 | jp,保存と終了,:[range]w[rite]! {file},{file}に保存。ファイルがあれば上書き。 192 | jp,保存と終了,:[range]w[rite][!] >> {file},{file}に追記 193 | jp,保存と終了,:st[op][!],vimをサスペンドし、新たなシェルを起動。'aw'オプションがONで、[!]も指定していない場合はバッファを保存 194 | jp,保存と終了,:wa[ll][!],変更のある全バッファを上書き保存 195 | jp,保存と終了,:wq[!],現ファイルを保存して終了 196 | jp,保存と終了,:wq[!] {file},{file}に保存して終了 197 | jp,保存と終了,:xa[ll][!],or :wqall[!] 変更のある全バッファを保存して終了 198 | jp,保存と終了,:x[it][!] [file],""":wq""と同様だが、変更が加わっている場合のみ保存" 199 | jp,保存と終了,ZQ,""":q!""と同じ" 200 | jp,保存と終了,ZZ,""":x""と同じ" 201 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,N C,(N-1 行後の)行末までを変更 202 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,N cc,N 行を変更 203 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,N c{motion},{motion}で指定した範囲の文字列を変更 204 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,N s,N 文字を変更 205 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,N S,N 行を変更 206 | jp,「変更」とは、文字列を削除し、挿入モードに入ること,{visual}c,ビジュアルモードで選択された文字列を変更 207 | jp,外部コマンド,:!{command},{command}をシェルで起動する 208 | jp,外部コマンド,K,"カーソル下にある単語を'keywordprg' 外部コマンドで調べる。(デフォルトは""man"")" 209 | jp,外部コマンド,:sh[ell],シェルを起動する 210 | jp,左右の移動,^,行の先頭(但し空白文字類以外)に移動 211 | jp,左右の移動,0,行の先頭に移動 ( キーでも同じ) 212 | jp,左右の移動,g^,"画面上の行の先頭(但し空白文字類以外)に移動。(複数行にまたがる時の動きが""^""と違います)" 213 | jp,左右の移動,g0,"画面上の行の先頭に移動。(複数行にまたがる時の動きが""0""と違います)" 214 | jp,左右の移動,gm,現在行の中央(端末の横幅の半分の桁位置)に移動 215 | jp,左右の移動,"N ,","直前の""f"", ""F"", ""t"", ""T""を逆方向に N 回繰り返す。" 216 | jp,左右の移動,N ;,"直前の""f"", ""F"", ""t"", ""T""を N 回繰り返す。" 217 | jp,左右の移動,N |,N桁目に移動。(デフォルトは1) 218 | jp,左右の移動,N $,行の末尾に移動。(N-1行、下に移動)( キーでも同じ) 219 | jp,左右の移動,N f{char},現在位置から右方向にあるN個目の{char}に移動 220 | jp,左右の移動,N F{char},現在位置から左方向にあるN個目の{char}に移動 221 | jp,左右の移動,N g$,"行の末尾に移動。(複数行にまたがる時の動きが""$""と違います)" 222 | jp,左右の移動,N h,"左に N 桁移動 ( CTRL-H, , キーでも同じ)" 223 | jp,左右の移動,N l,"右に N 桁移動 ( , キーでも同じ)" 224 | jp,左右の移動,N t{char},現在位置から右方向にあるN個目の{char}の左側に移動 225 | jp,左右の移動,N T{char},現在位置から左方向にあるN個目の{char}の右側に移動 226 | jp,折り畳みコマンド,:{range}fold,{range}範囲の行を折畳む 227 | jp,折り畳みコマンド,set foldmethod=expr,'foldexpr'で折畳み 228 | jp,折り畳みコマンド,set foldmethod=indent,インデントで折畳み 229 | jp,折り畳みコマンド,set foldmethod=manual,手動で折畳み 230 | jp,折り畳みコマンド,set foldmethod=marker,'foldmarker'で折畳み 231 | jp,折り畳みコマンド,set foldmethod=syntax,シンタックスのリージョンで折畳み 232 | jp,折り畳みコマンド,zc,カーソル下の折畳みを1段閉じる 233 | jp,折り畳みコマンド,zC,カーソル下の折畳みを全段閉じる 234 | jp,折り畳みコマンド,zd,カーソル下の1つの折畳みを削除する 235 | jp,折り畳みコマンド,zD,カーソル下の全ての折畳みを削除する 236 | jp,折り畳みコマンド,zf{motion},手動で折畳みを定義する 237 | jp,折り畳みコマンド,zi,'foldenable'を反転させる 238 | jp,折り畳みコマンド,zm,'foldlevel'を減らし、折畳みを増やす 239 | jp,折り畳みコマンド,zM,'foldlevel'を0にし、全て折畳む 240 | jp,折り畳みコマンド,zn,'foldenable'を無効にし、折畳み無し 241 | jp,折り畳みコマンド,zN,'foldenable'を有効にし、折畳む 242 | jp,折り畳みコマンド,zo,カーソル下の折畳みを1段開く 243 | jp,折り畳みコマンド,zO,カーソル下の折畳みを全段開く 244 | jp,折り畳みコマンド,zr,'foldlevel'を増やし、折畳を減らす 245 | jp,折り畳みコマンド,zR,'foldlevel'を最大にし、全て開く 246 | jp,挿入モードでの特殊キー,0 CTRL-D,現在行の全インデントを削除 247 | jp,挿入モードでの特殊キー, or CTRL-H,カーソルの前の1文字を削除 248 | jp,挿入モードでの特殊キー,CTRL-@,直前に挿入した文字列をもう一度挿入し、挿入モードから復帰 249 | jp,挿入モードでの特殊キー,CTRL-A,直前に挿入した文字列をもう一度挿入 250 | jp,挿入モードでの特殊キー,^ CTRL-D,現在行の全インデントを削除。但し、次の行のインデントには影響しない。 251 | jp,挿入モードでの特殊キー,CTRL-D,'shiftwidth'での指定分のインデントを現在行の行頭から削除 252 | jp,挿入モードでの特殊キー,CTRL-E,カーソル位置の直下の行の内容を1文字挿入 253 | jp,挿入モードでの特殊キー,CTRL-N,カーソルの前にあるキーワードと合致する単語を順方向に検索して挿入 254 | jp,挿入モードでの特殊キー,CTRL-P,カーソルの前にあるキーワードと合致する単語を逆方向に検索して挿入 255 | jp,挿入モードでの特殊キー,"CTRL-R {0-9a-z%#:.-=""}",指定のレジスタの内容を挿入 256 | jp,挿入モードでの特殊キー,CTRL-T,'shiftwidth'での指定分のインデントを現在行の行頭に挿入 257 | jp,挿入モードでの特殊キー,CTRL-U,現在行で入力した全部の文字を削除 258 | jp,挿入モードでの特殊キー,CTRL-V {char}..,指定の{char}、もしくは10進数指定のバイト値を挿入 259 | jp,挿入モードでの特殊キー,CTRL-W,カーソル位置の1単語を削除 260 | jp,挿入モードでの特殊キー,CTRL-X ...,カーソルの前にある単語をいろんな方法で補完する。 261 | jp,挿入モードでの特殊キー,CTRL-Y,カーソル位置の真上の行の内容を1文字挿入 262 | jp,挿入モードでの特殊キー,,カーソル位置の1文字を削除 263 | jp,挿入モードでの特殊キー, or or CTRL-M or CTRL-J,改行して、新しい行を作成 264 | jp,挿入モードの終了,CTRL-C,と同様。ただし、短縮形は展開しない 265 | jp,挿入モードの終了,CTRL-O {command},{command}を実行し、挿入モードへ復帰 266 | jp,挿入モードの終了,,挿入モードを終わって、通常モードへ復帰 267 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),"N a""","""a double quoted string""を選択" 268 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N a',"""a single quoted string""を選択" 269 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N a>,"""a <> block""を選択" 270 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N a`,"""a backward quoted string""を選択" 271 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N ab,"""a block""( ""[(""~""])""の範囲)を選択" 272 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N aB,"""a Block"" ( ""[{""~""]}""の範囲)を選択" 273 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N ap,"""a paragraph""を選択" 274 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N as,"""a sentence""を選択" 275 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N at,"""a tag block"" ()を選択" 276 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N aw,"""a word""を選択(単語の前後の空白も削除)" 277 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N aW,"""a |WORD|""を選択" 278 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),"N i""","""inner double quoted string""を選択" 279 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N i',"""inner single quoted string""を選択" 280 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N i>,"""inner <> block""を選択" 281 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N i`,"""inner backward quoted string""を選択" 282 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N ib,"""inner block"" ( ""[(""~""])""の範囲)を選択" 283 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N iB,"""inner Block"" ( ""[{""~""]}""の範囲)を選択" 284 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N ip,"""inner paragraph""を選択" 285 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N is,"""inner sentence""を選択" 286 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N it,"""inner tag block"" ()を選択" 287 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N iw,"""inner word""を選択(正味の単語だけを削除)" 288 | jp,文字列オブジェクト(ビジュアルモードか、オペレータ指定後),N iW,"""inner |WORD|""を選択" 289 | jp,文字列のコピーと移動,"""{char}",レジスタ{char}を指定。これに続いて、削除コマンドやヤンクコマンド、プットコマンドを指定 290 | jp,文字列のコピーと移動,N gp,pと同じだが、挿入した文字列の後にカーソルを移動 291 | jp,文字列のコピーと移動,N gP,Pと同じだが、挿入した文字列の後にカーソルを移動 292 | jp,文字列のコピーと移動,N [p,Pと同じだが、インデントを現在行に合せる 293 | jp,文字列のコピーと移動,N ]p,pと同じだが、インデントを現在行に合せる 294 | jp,文字列のコピーと移動,N p,カーソル位置の後にレジスタ内容をN回プット(ペースト) 295 | jp,文字列のコピーと移動,N P,カーソル位置の前にレジスタ内容をN回プット(ペースト) 296 | jp,文字列のコピーと移動,N Y,N 行をレジスタにヤンク 297 | jp,文字列のコピーと移動,N y{motion},{motion}で指定された範囲の文字列をレジスタにヤンク(コピー) 298 | jp,文字列のコピーと移動,N yy,N 行をレジスタにヤンク 299 | jp,文字列のコピーと移動,:reg,全レジスタの内容を表示 300 | jp,文字列のコピーと移動,:reg {arg},{arg}で示されたレジスタの内容を表示 301 | jp,文字列のコピーと移動,{visual}y,ハイライト化された文字列をレジスタにヤンク 302 | jp,文字列の削除,N D,(N-1 行後の)行末まで削除 303 | jp,文字列の削除,N dd,N 行削除 304 | jp,文字列の削除,N ,カーソル位置及びその後ろの N 文字を削除 305 | jp,文字列の削除,N d{motion},{motion}で指定された範囲の文字列を削除 306 | jp,文字列の削除,N gJ,"""J""と同じだが、行の間にスペースを入れない" 307 | jp,文字列の削除,N J,N-1 行を結合して1行に(を削除) 308 | jp,文字列の削除,N x,カーソル位置及びその後ろの N 文字を削除 309 | jp,文字列の削除,N X,カーソル位置の前の N 文字を削除 310 | jp,文字列の削除,:[range]d [x],[range]で指定した範囲の行を削除 [それをレジスタxに] 311 | jp,文字列の削除,{visual}d,ハイライト化された文字列を削除 312 | jp,文字列の削除,{visual}gJ,"""{visual}J""と同じだが、行の間にスペースを入れない" 313 | jp,文字列の削除,{visual}J,ビジュアルモードで選択された文字列を結合 314 | jp,文字列の変更,g?{motion},{motion}で指定した範囲をrot13でエンコードする。 315 | jp,文字列の変更,g~{motion},{motion}で指定した範囲の大文字/小文字を変換 316 | jp,文字列の変更,gu{motion},{motion}で指定した範囲を小文字に変換 317 | jp,文字列の変更,gU{motion},{motion}で指定した範囲を大文字に変換 318 | jp,文字列の変更,N <<,カレント行から N 行分のインデントを減らす 319 | jp,文字列の変更,N >>,カレント行から N 行分のインデントを増やす 320 | jp,文字列の変更,N ~,N 文字分の英文字の大文字/小文字を変換し、カーソルを移動 321 | jp,文字列の変更,N CTRL-A,カーソル位置もしくは後ろにある数字にNを加算する 322 | jp,文字列の変更,N CTRL-X,カーソル位置もしくは後ろにある数字からNを減算する 323 | jp,文字列の変更,N gq{motion},{motion}で指定した範囲を'textwidth'で指定した長さにフォーマット 324 | jp,文字列の変更,N gR,仮想置換モードへ。置換モードと同じだが、レイアウトに影響しない。 325 | jp,文字列の変更,N gr{char},N 文字をレイアウトに影響を与えずに置換 326 | jp,文字列の変更,N <{motion},{motion}で指定した範囲を'shiftwidth'分、インデントを減らす 327 | jp,文字列の変更,N >{motion},{motion}で指定した範囲を'shiftwidth'分、インデントを増やす 328 | jp,文字列の変更,N R,置換モードへ (入力文字列を N 回繰り返す) 329 | jp,文字列の変更,N r{char},N 文字を{char}に置換 330 | jp,文字列の変更,:[range]ce[nter],[width][range]の行範囲をセンタリング 331 | jp,文字列の変更,:[range]le[ft],[indent][range]の行範囲を([indent] 分)左寄せ 332 | jp,文字列の変更,:[range]ri[ght],[width][range]の行範囲を([width] 桁まで)右寄せ 333 | jp,文字列の変更,{visual}~,ビジュアルモードで選択された範囲の大文字/小文字を変換 334 | jp,文字列の変更,{visual}c,ビジュアルブロックモード用:選ばれている各行の内容を入力した文字列に置き換え 335 | jp,文字列の変更,{visual}C,ビジュアルブロックモード用:選ばれている各行の行末までを入力した文字列に置き換え 336 | jp,文字列の変更,{visual}g?,ビジュアルモードで選択した範囲をrot13でエンコードする。 337 | jp,文字列の変更,{visual}r{char},ビジュアルブロックモード用: 選択範囲の各文字を{char}で、置換 338 | jp,文字列の変更,{visual}u,ビジュアルモードで選択された範囲を小文字に変換 339 | jp,文字列の変更,{visual}U,ビジュアルモードで選択された範囲を大文字に変換 340 | jp,文字列の挿入,N a,カーソル位置の後に文字列を(N回)追加 341 | jp,文字列の挿入,N A,現在行の末尾に文字列を(N回)追加 342 | jp,文字列の挿入,N gI,現在行の先頭に文字列を(N回)追加 343 | jp,文字列の挿入,N i,カーソル位置の前に文字列を(N回)追加(も同様) 344 | jp,文字列の挿入,N I,現在行の最初の非空白文字の前に文字列を(N回)追加 345 | jp,文字列の挿入,N o,現在行の下に新たな行を追加し、文字列を(N回)追加する。 346 | jp,文字列の挿入,N O,現在行に新たな行を挿入し、文字列を(N回)追加する。 347 | jp,文字列の挿入,:star[tinsert][!],Insertモードを開始する。[!]を指定するとAppendモードとなる。 348 | jp,文字列の挿入,:startr[eplace][!],Replaceモードを開始する。[!]を指定すると行末から開始する。 349 | jp,特殊な Ex 文字,"""",コメントの開始 350 | jp,特殊な Ex 文字,%,現在のファイル名(ファイル名を使うべき場所でのみ可) 351 | jp,特殊な Ex 文字,|,"コマンドを2つに分割 ("":global""と"":!""では使用不可)" 352 | jp,特殊な Ex 文字,#[num],別のファイル名[num] (ファイル名を使うべき場所でのみ可) 353 | jp,特殊な挿入コマンド,:r! {command},カーソル位置の後ろに {command} を実行した結果の標準出力の内容を挿入 354 | jp,特殊な挿入コマンド,:r [file],カーソル位置の後ろに [file] の内容を挿入 355 | jp,移動,cursor keys,カーソルを上下左右に移動 356 | jp,移動,,その行の最終桁に移動 357 | jp,移動,,その行の先頭桁に移動 358 | jp,移動,shift-left/right,1単語ごと左右に移動 359 | jp,移動,shift-up/down,1画面ごと前後に移動 360 | jp,繰り返しコマンド,:@@,直前の:@{a-z} を N 回実行 361 | jp,繰り返しコマンド,:@{a-z},レジスタ{a-z}の内容をExコマンドとみなして、N回実行 362 | jp,繰り返しコマンド,N .,直前のコマンドを繰り返す。(回数はN回となる) 363 | jp,繰り返しコマンド,N @@,直前の@{a-z} を N 回実行 364 | jp,繰り返しコマンド,N @{a-z},レジスタ{a-z}の内容を N 回実行 365 | jp,繰り返しコマンド,N gs,N 秒間の間、何もしない 366 | jp,繰り返しコマンド,q,記録を終了 367 | jp,繰り返しコマンド,q{a-z},入力された文字群をレジスタ{a-z}に記録 368 | jp,繰り返しコマンド,q{A-Z},入力された文字群をレジスタ{a-z}に追加して記録 369 | jp,繰り返しコマンド,:[range]g[lobal]!/{pattern}/[cmd],"[range]の中で、指定の{pattern}に合致**しない**各行に対して[cmd]コマンド(デフォルトでは"":p"")を実行する。" 370 | jp,繰り返しコマンド,:[range]g[lobal]/{pattern}/[cmd],"[range]の中で、指定の{pattern}に合致する各行に対して[cmd]コマンド(デフォルトでは"":p"")を実行する。" 371 | jp,繰り返しコマンド,:sl[eep] [sec],[sec] 秒間の間、何もしない 372 | jp,繰り返しコマンド,:so[urce] {file},{file}からExコマンドを読み出す。 373 | jp,繰り返しコマンド,:so[urce]! {file},{file}からvimコマンドを読み出す。 374 | jp,複数ウィンドウコマンド,CTRL-W +,現在のウィンドウの高さを増やす 375 | jp,複数ウィンドウコマンド,CTRL-W -,現在のウィンドウの高さを減らす 376 | jp,複数ウィンドウコマンド,CTRL-W =,全ウィンドウの高さを同一に 377 | jp,複数ウィンドウコマンド,CTRL-W ],ウィンドウを分割し、カーソル下のタグにジャンプ 378 | jp,複数ウィンドウコマンド,CTRL-W ^,ウィンドウを分割し、別ファイルにジャンプ 379 | jp,複数ウィンドウコマンド,CTRL-W _,現在のウィンドウの高さを変更する(デフォルト:最大) 380 | jp,複数ウィンドウコマンド,CTRL-W b,カーソルを一番下のウィンドウに移動 381 | jp,複数ウィンドウコマンド,CTRL-W c,or :cl[ose] バッファを隠しウィンドウを閉じる 382 | jp,複数ウィンドウコマンド,CTRL-W CTRL-W,カーソルを下のウィンドウに移動(wrap) 383 | jp,複数ウィンドウコマンド,CTRL-W f,ウィンドウを分割し、カーソル下のファイルにジャンプ 384 | jp,複数ウィンドウコマンド,CTRL-W j,カーソルを下のウィンドウに移動 385 | jp,複数ウィンドウコマンド,CTRL-W k,カーソルを上のウィンドウに移動 386 | jp,複数ウィンドウコマンド,CTRL-W n,or :new 新たな空ウィンドウを作成 387 | jp,複数ウィンドウコマンド,CTRL-W o,or :on[ly] 画面を現在ウィンドウ1つだけにする 388 | jp,複数ウィンドウコマンド,CTRL-W p,カーソルを直前のアクティブウィンドウに移動 389 | jp,複数ウィンドウコマンド,CTRL-W q,or :q[uit] 編集を終了しウィンドウを閉じる 390 | jp,複数ウィンドウコマンド,CTRL-W r,ウィンドウを下側にローテートする。 391 | jp,複数ウィンドウコマンド,CTRL-W R,ウィンドウを上側にローテートする。 392 | jp,複数ウィンドウコマンド,CTRL-W s,or :split ウィンドウを2つに分割 393 | jp,複数ウィンドウコマンド,CTRL-W t,カーソルを一番上のウィンドウに移動 394 | jp,複数ウィンドウコマンド,CTRL-W W,カーソルを上のウィンドウに移動(wrap) 395 | jp,複数ウィンドウコマンド,CTRL-W x,現在のウィンドウを次のウィンドウと入れ換え 396 | jp,複数ウィンドウコマンド,:sf[ind] {file},ウィンドウを分割し、{file}を'path'中で探し、それを編集 397 | jp,複数ウィンドウコマンド,:split {file},ウィンドウを2つに分割し、片方で{file}を開く 398 | jp,複数ウィンドウコマンド,:vertical {cmd},{cmd}が縦分割するようにする 399 | jp,複数ウィンドウコマンド,:vsplit {file},同上。ウインドウは縦分割。 400 | jp,複雑な変更処理,&,"直前の"":s""を現在行について繰り返す。(オプションなし)" 401 | jp,複雑な変更処理,N ==,N 行を'equalprg'の結果出力に置き換え 402 | jp,複雑な変更処理,N !!{command},N 行を{command}の結果出力に置き換え 403 | jp,複雑な変更処理,N ={motion},{motion}で指定した範囲を'equalprg'の結果出力に置き換え 404 | jp,複雑な変更処理,N !{motion}{command},{motion}で指定した範囲を{command}の結果出力に置き換え 405 | jp,複雑な変更処理,:[range]! {command},[range] の範囲を{command}の結果出力に置き換え 406 | jp,複雑な変更処理,:[range]ret[ab][!] [tabstop],'tabstop'の値を変更し、それに従って空白、TABの類を適切な状態にする。 407 | jp,複雑な変更処理,:[range]s[ubstitute] [g][c],"直前の"":s""を新たな範囲とオプションで繰り返す" 408 | jp,複雑な変更処理,:[range]s[ubstitute]/{pattern}/{string}/[g][c],[range]の範囲の{pattern}を{string}に置換する。[g]を指定すると、見つかった全{pattern}を置換。[c]を指定すると、各置換を確認する。 409 | jp,複雑な変更処理,{visual}=,ビジュアルモードで選択された範囲を'equalprg'の結果出力に置き換え 410 | jp,複雑な変更処理,{visual}!{command},ビジュアルモードで選択された範囲を{command}の結果出力に置き換え 411 | jp,雑他な移動コマンド,%,"呼応するカッコ類(""("",""["",""{"")や、コメント、""#if""/""#else""/""#endif""のペアを検索して移動" 412 | jp,雑他な移動コマンド,M,画面上の真ん中の行の最初の非空白文字に移動 413 | jp,雑他な移動コマンド,N go,現バッファの N バイト目に移動 414 | jp,雑他な移動コマンド,N H,画面上で N 行目の最初の非空白文字に移動 415 | jp,雑他な移動コマンド,N L,画面上で下から N 行目の最初の非空白文字に移動 416 | jp,雑他な移動コマンド,:[range]go[to] [off],現バッファの [off] バイト目に移動 417 | -------------------------------------------------------------------------------- /doc/csv/tw.csv: -------------------------------------------------------------------------------- 1 | language,mode,command,description 2 | tw,EX 指令,:!,過濾行,或可通過外部指令執行之。 3 | tw,EX 指令,:!!,"重複上次的 "":!"" 指令。" 4 | tw,EX 指令,:#,"等同於 "":number""。" 5 | tw,EX 指令,:&,"重複上次的 "":substitute""。" 6 | tw,EX 指令,:*,執行暫存器的內容。 7 | tw,EX 指令,:<,將行左移一個 'shiftwidth'。 8 | tw,EX 指令,:=,顯示游標所在的行號。 9 | tw,EX 指令,:>,將行右移一個 'shiftwidth'。 10 | tw,EX 指令,:@,執行暫存器的內容。 11 | tw,EX 指令,:@@,"重複上次的 "":@""。" 12 | tw,EX 指令,:ab[breviate],輸入縮寫。 13 | tw,EX 指令,:abc[lear],刪除所有的縮寫。 14 | tw,EX 指令,:abo[veleft],使得分割的視窗出現在左側或者上方。 15 | tw,EX 指令,:al[l],為參數清單的每個檔案開啟一個視窗。 16 | tw,EX 指令,:am[enu],為所有模式輸入選單項。 17 | tw,EX 指令,:an[oremenu],為所有模式輸入選單項,不會被重新映射。 18 | tw,EX 指令,:a[ppend],附加 text。 19 | tw,EX 指令,:arga[dd],增加項目到參數清單中。 20 | tw,EX 指令,:argd[elete],從參數清單中刪除項目。 21 | tw,EX 指令,:argdo,在參數清單上的所有項目上執行一個指令。 22 | tw,EX 指令,:arge[dit],增加項目到參數清單中並編輯之。 23 | tw,EX 指令,:argg[lobal],定義全域參數清單。 24 | tw,EX 指令,:argl[ocal],定義本地參數清單。 25 | tw,EX 指令,:ar[gs],顯示參數清單。 26 | tw,EX 指令,:argu[ment],轉到參數清單一個指定的檔案。 27 | tw,EX 指令,:as[cii],顯示游標所在的字元的 ascii 值。 28 | tw,EX 指令,:aug[roup],選擇要用的自動指令組。 29 | tw,EX 指令,:aun[menu],刪除所有模式下的選單。 30 | tw,EX 指令,:au[tocmd],輸入或者顯示自動指令。 31 | tw,EX 指令,:bad[d],增加緩衝區到緩衝區清單。 32 | tw,EX 指令,:ba[ll],為緩衝區清單裡的每個緩衝區開啟一個視窗。 33 | tw,EX 指令,:bd[elete],從緩衝區清單刪除緩衝區。 34 | tw,EX 指令,:be[have],設定滑鼠和選擇行為。 35 | tw,EX 指令,:bel[owright],使得分割的視窗出現在右側或者下方。 36 | tw,EX 指令,:bf[irst],轉到緩衝區清單裡的第一個緩衝區。 37 | tw,EX 指令,:bl[ast],轉到緩衝區清單裡的最後一個緩衝區。 38 | tw,EX 指令,:bm[odified],轉到緩衝區清單裡的下一個修改過的緩衝區。 39 | tw,EX 指令,:bn[ext],轉到緩衝區清單裡的下一個緩衝區。 40 | tw,EX 指令,:bN[ext],轉到緩衝區清單裡的上一個緩衝區。 41 | tw,EX 指令,:bo[tright],使得分割的視窗出現在最右側或者下方。 42 | tw,EX 指令,:bp[revious],轉到緩衝區清單裡的上一個緩衝區。 43 | tw,EX 指令,:brea[k],跳出 while 循環。 44 | tw,EX 指令,:breaka[dd],增加調試器斷點。 45 | tw,EX 指令,:breakd[el],刪除調試器斷點。 46 | tw,EX 指令,:breakl[ist],列出調試器斷點。 47 | tw,EX 指令,:br[ewind],轉到緩衝區清單裡的第一個緩衝區。 48 | tw,EX 指令,:bro[wse],使用檔案選擇對話框。 49 | tw,EX 指令,:bufdo,為所有清單內緩衝區執行指令。 50 | tw,EX 指令,:b[uffer],轉到緩衝區清單裡的特定緩衝區。 51 | tw,EX 指令,:buffers,列出緩衝區清單裡的所有檔案。 52 | tw,EX 指令,:bun[load],卸載指定的緩衝區。 53 | tw,EX 指令,:bw[ipeout],真正刪除一個緩衝區。 54 | tw,EX 指令,:ca[bbrev],"類似於 "":abbreviate"",但用於命令列模式。" 55 | tw,EX 指令,:cabc[lear],清除所有縮寫,用於命令列模式。 56 | tw,EX 指令,:caddb[uffer],通過緩衝區補充錯誤。 57 | tw,EX 指令,:cad[dexpr],通過表達式補充錯誤。 58 | tw,EX 指令,:caddf[ile],加入錯誤訊息到當前 quickfix 清單。 59 | tw,EX 指令,:cal[l],調用函數。 60 | tw,EX 指令,:cat[ch],:try 指令的一部分。 61 | tw,EX 指令,:cb[uffer],分析錯誤訊息並跳轉到第一個。 62 | tw,EX 指令,:cc,跳轉到特定的錯誤。 63 | tw,EX 指令,:ccl[ose],關閉 quickfix 視窗。 64 | tw,EX 指令,:cd,變更目錄。 65 | tw,EX 指令,:ce[nter],排版行,使其居中對齊。 66 | tw,EX 指令,:cex[pr],從表達式裡讀取錯誤並跳轉到第一個。 67 | tw,EX 指令,:cf[ile],讀入含有錯誤訊息的檔案,並跳轉到第一個。 68 | tw,EX 指令,:cfir[st],跳轉到指定的錯誤上,預設為第一個。 69 | tw,EX 指令,:cgetb[uffer],從緩衝區裡得到錯誤。 70 | tw,EX 指令,:cgete[xpr],從表達實裡得到錯誤。 71 | tw,EX 指令,:cg[etfile],讀入含有錯誤訊息的檔案。 72 | tw,EX 指令,:c[hange],替換一行或若干行。 73 | tw,EX 指令,:cha[nges],顯示修改的清單。 74 | tw,EX 指令,:chd[ir],變更當前目錄。 75 | tw,EX 指令,:che[ckpath],列出包含的標頭檔。 76 | tw,EX 指令,:checkt[ime],檢查載入緩衝區的時間標籤。 77 | tw,EX 指令,:cla[st],跳轉到指定的錯誤上,預設為最後一個。 78 | tw,EX 指令,:cl[ist],列出所有錯誤。 79 | tw,EX 指令,:clo[se],變更當前視窗。 80 | tw,EX 指令,:cm[ap],"類似於 "":map"",但用於命令列模式。" 81 | tw,EX 指令,:cmapc[lear],清除所有映射,用於命令列模式。 82 | tw,EX 指令,:cme[nu],為命令列模式增加選單。 83 | tw,EX 指令,:cnew[er],跳轉到下一個較新的錯誤清單。 84 | tw,EX 指令,:cn[ext],跳轉到下一個錯誤。 85 | tw,EX 指令,:cN[ext],跳轉到上一個錯誤。 86 | tw,EX 指令,:cnf[ile],跳轉到下一個檔案的第一個錯誤。 87 | tw,EX 指令,:cNf[ile],跳轉到前一個檔案的最後一個錯誤。 88 | tw,EX 指令,:cnorea[bbrev],"類似於 "":noreabbrev"",但用於命令列模式。" 89 | tw,EX 指令,:cno[remap],"類似於 "":noremap"",但用於命令列模式。" 90 | tw,EX 指令,:cnoreme[nu],"類似於 "":noremenu"",但用於命令列模式。" 91 | tw,EX 指令,:col[der],跳轉到上一個較老的錯誤清單。 92 | tw,EX 指令,:colo[rscheme],載入特定的色彩方案。 93 | tw,EX 指令,:comc[lear],清除所有用戶自定的指令。 94 | tw,EX 指令,:com[mand],建立用戶自定的指令。 95 | tw,EX 指令,:comp[iler],為特定編譯器設定選項。 96 | tw,EX 指令,:conf[irm],需要確認時,提示用戶。 97 | tw,EX 指令,:con[tinue],回到 :while 開始處。 98 | tw,EX 指令,:cope[n],開啟 quickfix 視窗。 99 | tw,EX 指令,:co[py],複製行。 100 | tw,EX 指令,:cpf[ile],跳轉到上一個檔案的最後一個錯誤。 101 | tw,EX 指令,:cp[revious],跳轉到上一個錯誤。 102 | tw,EX 指令,:cq[uit],退出 Vim,帶錯誤碼。 103 | tw,EX 指令,:cr[ewind],跳到指定的錯誤,預設為第一個。 104 | tw,EX 指令,:cs[cope],執行 cscope 指令。 105 | tw,EX 指令,:cst[ag],使用 cscope 來跳轉到標籤上。 106 | tw,EX 指令,:cuna[bbrev],"類似於 "":unabbrev"",但用於命令列模式。" 107 | tw,EX 指令,:cu[nmap],"類似於 "":unmap"",但用於命令列模式。" 108 | tw,EX 指令,:cunme[nu],刪除命令列的選單。 109 | tw,EX 指令,:cw[indow],開啟或者關閉 quickfix 視窗。 110 | tw,EX 指令,:deb[ug],在調試模式執行指令。 111 | tw,EX 指令,:debugg[reedy],從正常的輸入那裡讀取調試模式指令。 112 | tw,EX 指令,:delc[ommand],刪除用戶自定的指令。 113 | tw,EX 指令,:d[elete],刪除行。 114 | tw,EX 指令,:delf[unction],刪除用戶函數。 115 | tw,EX 指令,:delm[arks],刪除位置標記。 116 | tw,EX 指令,:diffg[et],刪除該緩衝區的所有差異。 117 | tw,EX 指令,:diffo[ff],關閉 diff 模式。 118 | tw,EX 指令,:diffp[atch],應用補丁然後顯示差異。 119 | tw,EX 指令,:diffpu[t],刪除另外一個緩衝區的差異。 120 | tw,EX 指令,:diffs[plit],顯示和另外一個檔案的差異。 121 | tw,EX 指令,:diffthis,使得當前視窗成為 diff 視窗。 122 | tw,EX 指令,:dif[fupdate],更新 'diff' 緩衝區。 123 | tw,EX 指令,:dig[raphs],顯示或者輸入二合字母。 124 | tw,EX 指令,:di[splay],顯示暫存器。 125 | tw,EX 指令,:dj[ump],跳轉到 #define。 126 | tw,EX 指令,:dl[ist],列出所有的 #define。 127 | tw,EX 指令,:doautoa[ll],在所有載入的緩衝區上應用自動指令。 128 | tw,EX 指令,:do[autocmd],在該緩衝區應用自動指令。 129 | tw,EX 指令,:dr[op],跳到編輯某檔案的視窗,不成功則在當前視窗編輯之。 130 | tw,EX 指令,:ds[earch],列出一個 #define。 131 | tw,EX 指令,:dsp[lit],分割視窗並跳轉到 #define。 132 | tw,EX 指令,:ea[rlier],回到舊的變更,還原。 133 | tw,EX 指令,:ec[ho],回顯表達式結果。 134 | tw,EX 指令,:echoe[rr],類似於 :echo,如同錯誤一樣顯示和使用歷史。 135 | tw,EX 指令,:echoh[l],為 echo 等指令設定高亮 (highlight) 。 136 | tw,EX 指令,:echom[sg],等同於 :echo,在歷史裡放置消息。 137 | tw,EX 指令,:echon,等同於 :echo,但不留 。 138 | tw,EX 指令,:e[dit],編輯檔案。 139 | tw,EX 指令,:el[se],:if 指令的一部分。 140 | tw,EX 指令,:elsei[f],:if 指令的一部分。 141 | tw,EX 指令,:em[enu],按名字執行選單。 142 | tw,EX 指令,:endfo[r],結束最近的 :for。 143 | tw,EX 指令,:endf[unction],結束用戶函數。 144 | tw,EX 指令,:en[dif],結束最近的 :if。 145 | tw,EX 指令,:endt[ry],結束最近的 :try。 146 | tw,EX 指令,:endw[hile],結束最近的 :while。 147 | tw,EX 指令,:ene[w],編輯新的無名緩衝區。 148 | tw,EX 指令,:ex,"等同於 "":edit""。" 149 | tw,EX 指令,:exe[cute],執行表達式的結果產生的字元串。 150 | tw,EX 指令,:exi[t],"等同於 "":xit""。" 151 | tw,EX 指令,:exu[sage],Ex 指令總覽。 152 | tw,EX 指令,:f[ile],顯示或者設定當前檔名。 153 | tw,EX 指令,:files,列出緩衝區清單的所有檔案。 154 | tw,EX 指令,:filet[ype],切換檔案類型檢測的開啟/關閉。 155 | tw,EX 指令,:fina[lly],:try 指令的一部分。 156 | tw,EX 指令,:fin[d],在 'path' 裡找尋檔案並編輯之。 157 | tw,EX 指令,:fini[sh],退出 Vim 腳本的執行。 158 | tw,EX 指令,:fir[st],轉到參數清單的第一個檔案。 159 | tw,EX 指令,:fix[del],設定 的鍵碼。 160 | tw,EX 指令,:fo[ld],建立摺疊。 161 | tw,EX 指令,:foldc[lose],關閉摺疊。 162 | tw,EX 指令,:folddoc[losed],對所有在關閉摺疊的行執行指令。 163 | tw,EX 指令,:foldd[oopen],對所有不在關閉摺疊的行執行指令。 164 | tw,EX 指令,:foldo[pen],開啟摺疊。 165 | tw,EX 指令,:for,for 循環。 166 | tw,EX 指令,:fu[nction],定義用戶函數。 167 | tw,EX 指令,:g[lobal],對符合的行執行指令。 168 | tw,EX 指令,:go[to],轉到緩衝區某字節處。 169 | tw,EX 指令,:gr[ep],執行 'grepprg' 並轉到第一個符合處。 170 | tw,EX 指令,:grepa[dd],類似 :grep,但附加到當前清單後。 171 | tw,EX 指令,:gu[i],啟動 GUI。 172 | tw,EX 指令,:gv[im],啟動 GUI。 173 | tw,EX 指令,:ha[rdcopy],發送內容到印表機。 174 | tw,EX 指令,:h[elp],開啟說明視窗。 175 | tw,EX 指令,:helpf[ind],開啟顯示說明視窗的對話框。 176 | tw,EX 指令,:helpg[rep],"類似於 "":grep"",但搜尋說明檔案。" 177 | tw,EX 指令,:helpt[ags],為一個目錄產生說明標籤。 178 | tw,EX 指令,:hid[e],為一個指令隱藏該緩衝區。 179 | tw,EX 指令,:hi[ghlight],指定高亮 (highlight) 方法。 180 | tw,EX 指令,:his[tory],顯示歷史清單。 181 | tw,EX 指令,:ia[bbrev],"類似於 "":abbrev"",但用於插入模式。" 182 | tw,EX 指令,:iabc[lear],"類似於 "":abclear"",但用於插入模式。" 183 | tw,EX 指令,:if,條件滿足時執行指令。 184 | tw,EX 指令,:ij[ump],跳轉到標識符號的定義。 185 | tw,EX 指令,:il[ist],列出符合標識符號的行。 186 | tw,EX 指令,:im[ap],"類似於 "":map"",但用於插入模式。" 187 | tw,EX 指令,:imapc[lear],"類似於 "":map"",但用於插入模式。" 188 | tw,EX 指令,:ime[nu],為插入模式增加選單。 189 | tw,EX 指令,:inorea[bbrev],"類似於 "":noreabbrev"",但用於插入模式。" 190 | tw,EX 指令,:ino[remap],"類似於 "":noremap"",但用於插入模式。" 191 | tw,EX 指令,:inoreme[nu],"類似於 "":noremenu"",但用於插入模式。" 192 | tw,EX 指令,:i[nsert],插入 text。 193 | tw,EX 指令,:int[ro],顯示介紹文字。 194 | tw,EX 指令,:is[earch],列出符合標識符號的一行。 195 | tw,EX 指令,:isp[lit],分割視窗,並跳轉到標識符號的定義。 196 | tw,EX 指令,:iuna[bbrev],"類似於 "":unabbrev"",但用於插入模式。" 197 | tw,EX 指令,:iu[nmap],"類似於 "":unmap"",但用於插入模式。" 198 | tw,EX 指令,:iunme[nu],刪除插入模式的選單。 199 | tw,EX 指令,:j[oin],連接行。 200 | tw,EX 指令,:ju[mps],顯示跳轉表。 201 | tw,EX 指令,:k,設定位置標記。 202 | tw,EX 指令,:keepa[lt],跟隨的指令保持輪換檔案不變。 203 | tw,EX 指令,:keepj[jumps],跟隨的指令保持跳轉表和位置標記不變。 204 | tw,EX 指令,:kee[pmarks],跟隨的指令保持位置標記不變。 205 | tw,EX 指令,:laddb[uffer],通過緩衝區補充位置。 206 | tw,EX 指令,:lad[dexpr],通過表達式補充位置。 207 | tw,EX 指令,:laddf[ile],把位置加到當前位置清單裡。 208 | tw,EX 指令,:lan[guage],設定語言 (locale)。 209 | tw,EX 指令,:la[st],轉到參數清單的最後一個檔案。 210 | tw,EX 指令,:lat[er],轉到新的變更,重做。 211 | tw,EX 指令,:lb[uffer],分析位置並跳轉到第一個位置。 212 | tw,EX 指令,:lc[d],變更本地的目錄。 213 | tw,EX 指令,:lch[dir],變更本地的目錄。 214 | tw,EX 指令,:lcl[ose],關閉位置視窗。 215 | tw,EX 指令,:lcs[cope],"類似於 "":cscope"",但使用位置清單。" 216 | tw,EX 指令,:le[ft],左對齊行。 217 | tw,EX 指令,:lefta[bove],使得分割的視窗出現在左側或者上方。 218 | tw,EX 指令,:let,給變數或選項賦值。 219 | tw,EX 指令,:lex[pr],從表達式裡讀取位置並跳轉到第一個。 220 | tw,EX 指令,:lf[ile],從檔案裡讀取位置並跳轉到第一個。 221 | tw,EX 指令,:lfir[st],轉到指定的位置上,預設第一個。 222 | tw,EX 指令,:lgetb[uffer],從緩衝區裡讀取位置。 223 | tw,EX 指令,:lgete[xpr],從表達式裡讀取位置。 224 | tw,EX 指令,:lg[etfile],從檔案裡讀取位置。 225 | tw,EX 指令,:lgr[ep],運行 'grepprg' 並跳轉到第一個符合。 226 | tw,EX 指令,:lgrepa[dd],類似於 :grep,但附加到當前清單上。 227 | tw,EX 指令,:lh[elpgrep],"類似於 "":helpgrep"",但使用位置清單。" 228 | tw,EX 指令,:l[ist],顯示行。 229 | tw,EX 指令,:ll,轉到指定位置。 230 | tw,EX 指令,:lla[st],轉到指定位置,預設最後一個。 231 | tw,EX 指令,:lli[st],列出所有的位置。 232 | tw,EX 指令,:lmak[e],執行外部指令 'makeprg' 並分析錯誤訊息。 233 | tw,EX 指令,:lm[ap],"類似於 "":map!"",但包括 Lang-Arg 模式。" 234 | tw,EX 指令,:lmapc[lear],"類似於 "":mapclear!"",但包括 Lang-Arg 模式。" 235 | tw,EX 指令,:lnew[er],跳到較新的位置清單。 236 | tw,EX 指令,:lne[xt],跳到下一個位置。 237 | tw,EX 指令,:lN[ext],轉到位置清單的上一個位置。 238 | tw,EX 指令,:lnf[ile],跳到下一個檔案的第一個位置。 239 | tw,EX 指令,:lNf[ile],轉到上個檔案的最近一個位置。 240 | tw,EX 指令,:ln[oremap],"類似於 "":noremap!"",但包括 Lang-Arg 模式。" 241 | tw,EX 指令,:loadk[eymap],載入後面的鍵盤映射表,直到 EOF 為止。 242 | tw,EX 指令,:lo[adview],從檔案裡為當前視窗載入視圖。 243 | tw,EX 指令,:loc[kmarks],跟隨的指令保持位置標記不變。 244 | tw,EX 指令,:lockv[ar],給變數加鎖。 245 | tw,EX 指令,:lol[der],轉到較舊的位置清單。 246 | tw,EX 指令,:lope[n],開啟位置視窗。 247 | tw,EX 指令,:lpf[ile],轉到上一個檔案的最近的位置。 248 | tw,EX 指令,:lp[revious],轉到前一個位置。 249 | tw,EX 指令,:lr[ewind],轉到指定的位置,預設第一個。 250 | tw,EX 指令,:ls,列出所有的緩衝區。 251 | tw,EX 指令,:lt[ag],跳轉到標籤,並把符合的標籤加到位置清單上。 252 | tw,EX 指令,:lua,執行 |Lua| 指令。 253 | tw,EX 指令,:luad[o],對每行都執行 Lua 指令。 254 | tw,EX 指令,:luaf[ile],執行 |Lua| 指令檔。 255 | tw,EX 指令,:lu[nmap],"類似於 "":unmap!"",但包括 Lang-Arg 模式。" 256 | tw,EX 指令,:lv[imgrep],在若干檔案裡搜尋模式。 257 | tw,EX 指令,:lvimgrepa[dd],類似於 :vimgrep,但附加到當前清單。 258 | tw,EX 指令,:lw[indow],開啟或關閉位置視窗。 259 | tw,EX 指令,:mak[e],執行外部指令 'makeprg' 並分析其錯誤訊息。 260 | tw,EX 指令,:map,顯示或者輸入映射。 261 | tw,EX 指令,:mapc[lear],清除所有普通和可視模式的映射。 262 | tw,EX 指令,:ma[rk],設定位置標記。 263 | tw,EX 指令,:marks,列出所有的位置標記。 264 | tw,EX 指令,:mat[ch],定義要高亮 (highlight) 顯示的符合的模式。 265 | tw,EX 指令,:me[nu],輸入新的選單項。 266 | tw,EX 指令,:menut[ranslate],增加選單翻譯項目。 267 | tw,EX 指令,:mes[sages],顯示以前顯示的消息。 268 | tw,EX 指令,:mk[exrc],寫入當前映射和設定到檔案。 269 | tw,EX 指令,:mks[ession],寫入 session 資訊到檔案。 270 | tw,EX 指令,:mksp[ell],生成 .spl 拼寫檔案。 271 | tw,EX 指令,:mkvie[w],寫入當前視窗的視圖到檔案。 272 | tw,EX 指令,:mkv[imrc],寫入當前映射和設定到檔案。 273 | tw,EX 指令,:mod[e],顯示或者變更畫面模式。 274 | tw,EX 指令,:m[ove],移動行。 275 | tw,EX 指令,:mzf[ile],執行 MzScheme 指令檔。 276 | tw,EX 指令,:mz[scheme],執行 MzScheme 指令。 277 | tw,EX 指令,:nbc[lose],關閉當前 Netbeans 會話。 278 | tw,EX 指令,:nb[key],傳遞一個鍵給 Netbeans。 279 | tw,EX 指令,:nbs[art],開啟一個新的 Netbeans 會話。 280 | tw,EX 指令,:new,建立一個新的空白視窗。 281 | tw,EX 指令,:n[ext],跳轉到參數清單的下一個檔案。 282 | tw,EX 指令,:N[ext],轉到參數清單的上一個檔案。 283 | tw,EX 指令,:nm[ap],"類似於 "":map"",但使用一般模式。" 284 | tw,EX 指令,:nmapc[lear],清除一般模式的所有映射。 285 | tw,EX 指令,:nme[nu],為一般模式增加選單。 286 | tw,EX 指令,:nn[oremap],"類似於 "":noremap"",但使用一般模式。" 287 | tw,EX 指令,:nnoreme[nu],"類似於 "":noremenu"",但使用一般模式。" 288 | tw,EX 指令,:noa[utocmd],跟隨的指令不啟用自動指令。 289 | tw,EX 指令,:noh[lsearch],暫停 'hlsearch' 高亮 (highlight) 。 290 | tw,EX 指令,:norea[bbrev],輸入不會被重新映射的縮寫。 291 | tw,EX 指令,:no[remap],輸入不會被重新映射的映射。 292 | tw,EX 指令,:noreme[nu],輸入不會被重新映射的選單。 293 | tw,EX 指令,:norm[al],執行一般模式的指令。 294 | tw,EX 指令,:nu[mber],顯示 text 行時給出行號。 295 | tw,EX 指令,:nun[map],"類似於 "":unmap"",但使用一般模式。" 296 | tw,EX 指令,:nunme[nu],刪除一般模式的選單。 297 | tw,EX 指令,:ol[dfiles],列出 viminfo 檔案中包含位置標記的檔案。 298 | tw,EX 指令,:om[ap],"類似於 "":map"",但使用操作符等待模式。" 299 | tw,EX 指令,:omapc[lear],刪除操作符等待模式的所有映射。 300 | tw,EX 指令,:ome[nu],為操作符等待模式增加選單。 301 | tw,EX 指令,:on[ly],關閉當前視窗,除了當前的視窗以外。 302 | tw,EX 指令,:ono[remap],"類似於 "":noremap"",但使用操作符等待模式。" 303 | tw,EX 指令,:onoreme[nu],"類似於 "":noremenu"",但使用操作符等待模式。" 304 | tw,EX 指令,:o[pen],啟動開啟模式 (沒有實現)。 305 | tw,EX 指令,:opt[ions],開啟選項視窗。 306 | tw,EX 指令,:ou[nmap],"類似於 "":unmap"",但使用操作符等待模式。" 307 | tw,EX 指令,:ounme[nu],刪除操作符等待模式的選單。 308 | tw,EX 指令,:ow[nsyntax],為本視窗設定新的局部語法高亮 (highlight) 。 309 | tw,EX 指令,:pc[lose],關閉預覽視窗。 310 | tw,EX 指令,:ped[it],在預覽視窗編輯檔案。 311 | tw,EX 指令,:pe[rl],執行 Perl 指令。 312 | tw,EX 指令,:perld[o],對每行都執行 Perl 指令。 313 | tw,EX 指令,:po[p],跳轉到標籤棧較舊的項目上。 314 | tw,EX 指令,:pop[up],根據名字彈出選單。 315 | tw,EX 指令,:pp[op],"在預覽視窗 "":pop""。" 316 | tw,EX 指令,:pre[serve],寫入所有 text 到交換檔案。 317 | tw,EX 指令,:prev[ious],跳轉到參數清單裡的上一個檔案。 318 | tw,EX 指令,:p[rint],顯示行。 319 | tw,EX 指令,:P[rint],顯示行。 320 | tw,EX 指令,:profd[el],停止剖視 (profile) 函數或腳本。 321 | tw,EX 指令,:prof[ile],剖視 (profile) 函數或腳本。 322 | tw,EX 指令,:pro[mptfind],開啟 GUI 對話框進行搜尋。 323 | tw,EX 指令,:promptr[epl],開啟 GUI 對話框進行搜尋/替代。 324 | tw,EX 指令,:ps[earch],"類似於 "":ijump"",但在預覽視窗顯示符合。" 325 | tw,EX 指令,:pt[ag],在預覽視窗顯示標籤。 326 | tw,EX 指令,:ptf[irst],在預覽視窗 |:trewind|。 327 | tw,EX 指令,:ptj[ump],在預覽視窗 |:tjump| 和顯示標籤。 328 | tw,EX 指令,:ptl[ast],在預覽視窗 |:tlast|。 329 | tw,EX 指令,:ptn[ext],在預覽視窗 |:tnext|。 330 | tw,EX 指令,:ptN[ext],在預覽視窗 |:tNext|。 331 | tw,EX 指令,:ptp[revious],在預覽視窗 |:tprevious|。 332 | tw,EX 指令,:ptr[ewind],在預覽視窗 |:trewind|。 333 | tw,EX 指令,:pts[elect],在預覽視窗 |:tselect| 和顯示標籤。 334 | tw,EX 指令,:pu[t],插入暫存器的內容到 text。 335 | tw,EX 指令,:pw[d],顯示當前目錄。 336 | tw,EX 指令,:py3,執行 Python 3 指令。 337 | tw,EX 指令,:py3f[ile],執行 Python 3 指令檔。 338 | tw,EX 指令,:pyf[ile],執行 Python 指令檔。 339 | tw,EX 指令,:py[thon],執行 Python 指令。 340 | tw,EX 指令,:python3,同 :py3。 341 | tw,EX 指令,:qa[ll],退出 Vim。 342 | tw,EX 指令,:q[uit],退出當前視窗 (如果只有一視窗,則退出 Vim)。 343 | tw,EX 指令,:quita[ll],退出 Vim。 344 | tw,EX 指令,:r[ead],讀入檔案內容。 345 | tw,EX 指令,:rec[over],從 swap 檔裡還原檔案。 346 | tw,EX 指令,:redi[r],重定向消息到檔案或者暫存器。 347 | tw,EX 指令,:red[o],重做一次還原的變更。 348 | tw,EX 指令,:redr[aw],強迫顯示的重繪。 349 | tw,EX 指令,:redraws[tatus],強迫狀態列的重繪。 350 | tw,EX 指令,:reg[isters],顯示暫存器的內容。 351 | tw,EX 指令,:res[ize],變更當前視窗的高度。 352 | tw,EX 指令,:ret[ab],變更製表大小。 353 | tw,EX 指令,:retu[rn],從用戶函數返回。 354 | tw,EX 指令,:rew[ind],轉到參數清單的第一個檔案。 355 | tw,EX 指令,:ri[ght],右對齊 text。 356 | tw,EX 指令,:rightb[elow],使得分割視窗出現在右側或者下方。 357 | tw,EX 指令,:rub[y],執行 Ruby 指令。 358 | tw,EX 指令,:rubyd[o],對每行執行 Ruby 指令。 359 | tw,EX 指令,:rubyf[ile],執行 Ruby 指令檔。 360 | tw,EX 指令,:rund[o],從檔案裡讀入還原資訊。 361 | tw,EX 指令,:ru[ntime],執行 'runtimepath' 裡的 vim 腳本。 362 | tw,EX 指令,:rv[iminfo],讀取 viminfo 檔案。 363 | tw,EX 指令,:sal[l],為參數清單的每個檔案開啟視窗。 364 | tw,EX 指令,:san[dbox],在沙盤裡執行指令。 365 | tw,EX 指令,:sa[rgument],分割視窗並轉到參數清單的某一個檔案。 366 | tw,EX 指令,:sav[eas],用別的名字保存檔案。 367 | tw,EX 指令,:sba[ll],為緩衝區清單的每個檔案開啟視窗。 368 | tw,EX 指令,:sbf[irst],分割視窗並轉到緩衝區清單的第一個檔案。 369 | tw,EX 指令,:sbl[ast],分割視窗並轉到緩衝區清單的最後一個檔案。 370 | tw,EX 指令,:sbm[odified],分割視窗並轉到緩衝區清單的修改過的檔案。 371 | tw,EX 指令,:sbn[ext],分割視窗並轉到緩衝區清單的後一個檔案。 372 | tw,EX 指令,:sbN[ext],分割視窗並轉到緩衝區清單的前一個檔案。 373 | tw,EX 指令,:sbp[revious],分割視窗並轉到緩衝區清單的前一個檔案。 374 | tw,EX 指令,:sbr[ewind],分割視窗並轉到緩衝區清單的第一個檔案。 375 | tw,EX 指令,:sb[uffer],分割視窗並轉到緩衝區清單的某一個檔案。 376 | tw,EX 指令,:scripte[ncoding],執行過的 Vim 腳本使用的編碼。 377 | tw,EX 指令,:scrip[tnames],列出所有執行過的 Vim 腳本的名字。 378 | tw,EX 指令,:scs[cope],分割視窗並執行 cscope 指令。 379 | tw,EX 指令,:se[t],顯示或設定選項。 380 | tw,EX 指令,:setf[iletype],設定 'filetype',除非已經設定過。 381 | tw,EX 指令,:setg[lobal],顯示或者設定全域選項值。 382 | tw,EX 指令,:setl[ocal],顯示或者設定本地選項值。 383 | tw,EX 指令,:sf[ind],分割當前視窗並編輯 'path' 的檔案。 384 | tw,EX 指令,:sfir[st],分割視窗並轉到參數清單的第一個檔案。 385 | tw,EX 指令,:sh[ell],切換到 shell。 386 | tw,EX 指令,:sig[n],操作標號。 387 | tw,EX 指令,:sil[ent],安靜地運行指令。 388 | tw,EX 指令,:sim[alt],Win32 GUI: 模擬 Windows ALT 鍵。 389 | tw,EX 指令,:sla[st],分割視窗並轉到參數清單的最後一個檔案。 390 | tw,EX 指令,:sl[eep],幾秒內不作任何事。 391 | tw,EX 指令,:sm[agic],帶 'magic' 的 :substitute。 392 | tw,EX 指令,:sma[p],"類似於 "":map"",但用於選擇模式。" 393 | tw,EX 指令,:smapc[lear],刪除選擇模式所有的映射。 394 | tw,EX 指令,:sme[nu],增加選擇模式選單。 395 | tw,EX 指令,:sn[ext],分割視窗並轉到參數清單的下一個檔案。 396 | tw,EX 指令,:sN[ext],分割視窗並轉到參數清單的前一個檔案。 397 | tw,EX 指令,:sni[ff],發送請求到 sniff。 398 | tw,EX 指令,:sno[magic],帶 'nomagic' 的 :substitute。 399 | tw,EX 指令,:snor[emap],"類似於 "":noremap"",但用於選擇模式。" 400 | tw,EX 指令,:snoreme[nu],"類似於 "":noremenu"",但用於選擇模式。" 401 | tw,EX 指令,:sor[t],給行排序。 402 | tw,EX 指令,:so[urce],從檔案裡讀取 Vim 或 Ex 指令。 403 | tw,EX 指令,:spelld[ump],分割視窗並用正確的單字填充。 404 | tw,EX 指令,:spe[llgood],增加拼寫的好詞。 405 | tw,EX 指令,:spelli[nfo],顯示載入的拼寫檔案的資訊。 406 | tw,EX 指令,:spellr[epall],像上次 |z=| 那樣,但替換所有的壞詞。 407 | tw,EX 指令,:spellu[ndo],刪除好詞或壞詞。 408 | tw,EX 指令,:spellw[rong],增加拼字錯誤。 409 | tw,EX 指令,:sp[lit],分割當前視窗。 410 | tw,EX 指令,:spr[evious],分割視窗並轉到參數清單的前一個檔案。 411 | tw,EX 指令,:sre[wind],分割視窗並轉到參數清單的第一個檔案。 412 | tw,EX 指令,:sta[g],分割視窗並跳轉到標籤上。 413 | tw,EX 指令,:startg[replace],開始虛擬替換模式。 414 | tw,EX 指令,:star[tinsert],開始插入模式。 415 | tw,EX 指令,:startr[eplace],開始替換模式。 416 | tw,EX 指令,:stj[ump],"執行 "":tjump"" 並分割視窗。" 417 | tw,EX 指令,:st[op],暫停編輯器並退回 shell。 418 | tw,EX 指令,:stopi[nsert],退出插入模式。 419 | tw,EX 指令,:sts[elect],"執行 "":tselect"" 並分割視窗。" 420 | tw,EX 指令,:s[ubstitute],尋找和替代 text。 421 | tw,EX 指令,:sun[hide],"等同於 "":unhide""。" 422 | tw,EX 指令,:sunm[ap],"類似於 "":unmap"",但用於選擇模式。" 423 | tw,EX 指令,:sunme[nu],刪除選擇模式的選單。 424 | tw,EX 指令,:sus[pend],"等同於 "":stop""。" 425 | tw,EX 指令,:sv[iew],分割視窗並以唯讀模式編輯檔案。 426 | tw,EX 指令,:sw[apname],顯示當前交換檔案的名字。 427 | tw,EX 指令,:sync[bind],同步滾動綁定。 428 | tw,EX 指令,:sy[ntax],語法高亮 (highlight) 。 429 | tw,EX 指令,:t,"等同於 "":copy""。" 430 | tw,EX 指令,:tab,開啟新視窗時建立新分頁。 431 | tw,EX 指令,:tabc[lose],關閉當前標籤頁。 432 | tw,EX 指令,:tabdo,為每個標籤頁執行指令。 433 | tw,EX 指令,:tabe[dit],在新標籤頁裡編輯檔案。 434 | tw,EX 指令,:tabf[ind],尋找 'path' 裡的檔案,在新標籤頁裡編輯之。 435 | tw,EX 指令,:tabfir[st],轉到第一個標籤頁。 436 | tw,EX 指令,:tabl[ast],轉到最後一個標籤頁。 437 | tw,EX 指令,:tabm[ove],把標籤頁移到別的位置。 438 | tw,EX 指令,:tabnew,在新標籤頁裡編輯檔案。 439 | tw,EX 指令,:tabn[ext],轉到下一個標籤頁。 440 | tw,EX 指令,:tabN[ext],跳到上一個標籤頁。 441 | tw,EX 指令,:tabo[nly],關閉所有除了當前標籤頁以外的所有標籤頁。 442 | tw,EX 指令,:tabp[revious],轉到前一個標籤頁。 443 | tw,EX 指令,:tabr[ewind],轉到第一個標籤頁。 444 | tw,EX 指令,:tabs,列出標籤頁以及裡面包含的內容。 445 | tw,EX 指令,:ta[g],跳轉到標籤上。 446 | tw,EX 指令,:tags,顯示標籤棧的內容。 447 | tw,EX 指令,:tc[l],執行 Tcl 指令。 448 | tw,EX 指令,:tcld[o],為每行執行 Tcl 指令。 449 | tw,EX 指令,:tclf[ile],執行 Tcl 指令檔。 450 | tw,EX 指令,:te[aroff],撕下一個選單。 451 | tw,EX 指令,:tf[irst],轉到第一個符合的標籤。 452 | tw,EX 指令,:th[row],拋出例外。 453 | tw,EX 指令,:tj[ump],"類似於 "":tselect"",只有一個符合時直接跳轉之。" 454 | tw,EX 指令,:tl[ast],跳轉到最後一個符合的標籤。 455 | tw,EX 指令,:tm[enu],定義選單的工具提示。 456 | tw,EX 指令,:tn[ext],跳轉到下一個符合的標籤。 457 | tw,EX 指令,:tN[ext],跳轉到上一個符合的標籤。 458 | tw,EX 指令,:to[pleft],使得分割的視窗出現在頂部或者最左邊。 459 | tw,EX 指令,:tp[revious],跳轉到上一個符合的標籤。 460 | tw,EX 指令,:tr[ewind],跳轉到第一個符合的標籤。 461 | tw,EX 指令,:try,執行指令,錯誤或者例外時終止。 462 | tw,EX 指令,:ts[elect],列出符合的標籤並從中選擇一個。 463 | tw,EX 指令,:tu[nmenu],刪除選單的工具提示。 464 | tw,EX 指令,:una[bbreviate],刪除縮寫。 465 | tw,EX 指令,:u[ndo],還原最近的變更。 466 | tw,EX 指令,:undoj[oin],將下一個變更和上一個還原區塊合併。 467 | tw,EX 指令,:undol[ist],列出還原樹的葉節點。 468 | tw,EX 指令,:unh[ide],為緩衝區清單裡每個載入的檔案開啟視窗。 469 | tw,EX 指令,:unl[et],刪除變數。 470 | tw,EX 指令,:unlo[ckvar],給變數解鎖。 471 | tw,EX 指令,:unm[ap],刪除映射。 472 | tw,EX 指令,:unme[nu],刪除選單。 473 | tw,EX 指令,:uns[ilent],非安靜模式執行指令。 474 | tw,EX 指令,:up[date],如果有修改,寫回緩衝區。 475 | tw,EX 指令,:verb[ose],執行指令,過程中設定 'verbose'。 476 | tw,EX 指令,:ve[rsion],顯示版本編號和其它資訊。 477 | tw,EX 指令,:vert[ical],使得跟隨的指令垂直分割。 478 | tw,EX 指令,:v[global],對不符合的行,執行指令。 479 | tw,EX 指令,:vie[w],以唯讀方式編輯檔案。 480 | tw,EX 指令,:vim[grep],在若干檔案裡尋找模式。 481 | tw,EX 指令,:vimgrepa[dd],類似於 :vimgrep,但附加到當前清單。 482 | tw,EX 指令,:vi[sual],"等同於 "":edit"",但關掉 ""Ex"" 模式。" 483 | tw,EX 指令,:viu[sage],一般模式指令的總覽。 484 | tw,EX 指令,:vm[ap],"類似於 "":map"",但使用可視+選擇模式。" 485 | tw,EX 指令,:vmapc[lear],刪除可視+選擇模式所有的映射。 486 | tw,EX 指令,:vme[nu],為可視+選擇模式增加選單。 487 | tw,EX 指令,:vne[w],建立新的空白視窗,垂直分割。 488 | tw,EX 指令,:vn[oremap],"類似於 "":noremap"",但使用可視+選擇模式。" 489 | tw,EX 指令,:vnoreme[nu],"類似於 "":noremenu"",但使用可視+選擇模式。" 490 | tw,EX 指令,:vs[plit],垂直分割當前視窗。 491 | tw,EX 指令,:vu[nmap],"類似於 "":unmap"",但使用可視+選擇模式。" 492 | tw,EX 指令,:vunme[nu],刪除可視+選擇模式的選單。 493 | tw,EX 指令,:wa[ll],寫回所有 (變更的) 緩衝區。 494 | tw,EX 指令,:wh[ile],只要條件滿足,執行循環體。 495 | tw,EX 指令,:winc[md],執行視窗 (CTRL-W) 指令。 496 | tw,EX 指令,:windo,為每個視窗執行指令。 497 | tw,EX 指令,:winp[os],取得或者設定視窗位置。 498 | tw,EX 指令,:wi[nsize],取得或者設定視窗大小 (已廢棄)。 499 | tw,EX 指令,:wn[ext],寫回檔案,然後跳轉到參數清單的下一個檔案。 500 | tw,EX 指令,:wN[ext],寫回檔案,然後跳轉到參數清單的前一個檔案。 501 | tw,EX 指令,:wp[revious],寫回檔案,然後跳轉到參數清單的前一個檔案。 502 | tw,EX 指令,:wq,寫回檔案,然後退出視窗或者 Vim。 503 | tw,EX 指令,:wqa[ll],寫回所有 (變更的) 緩衝區然後退出 Vim。 504 | tw,EX 指令,:w[rite],寫回檔案。 505 | tw,EX 指令,:ws[verb],把動詞通過 IPC 發送給 workshop。 506 | tw,EX 指令,:wu[ndo],把還原資訊寫入檔案。 507 | tw,EX 指令,:wv[iminfo],寫入 viminfo 檔。 508 | tw,EX 指令,:X,請求加密密鑰。 509 | tw,EX 指令,:xa[ll],"等同於 "":wqall""。" 510 | tw,EX 指令,:x[it],如果緩衝區被改動,寫入之後退出視窗或者 Vim。 511 | tw,EX 指令,:xm[ap],"類似於 "":map"",但使用可視模式。" 512 | tw,EX 指令,:xmapc[lear],刪除可視模式的所有映射。 513 | tw,EX 指令,:xme[nu],增加可視模式的選單。 514 | tw,EX 指令,:xn[oremap],"類似於 "":noremap"",但使用可視模式。" 515 | tw,EX 指令,:xnoreme[nu],"類似於 "":noremenu"",但使用可視模式。" 516 | tw,EX 指令,:xu[nmap],"類似於 "":unmap"",但使用可視模式。" 517 | tw,EX 指令,:xunme[nu],刪除可視模式的選單。 518 | tw,EX 指令,:y[ank],抽出行到暫存器。 519 | tw,EX 指令,:z,顯示一些行。 520 | tw,'g' 開始的指令,g#,"類似於 ""#"",但不使用 ""<"" 和 "">""。" 521 | tw,'g' 開始的指令,g&,"在所有行上重複上次的 "":s""。" 522 | tw,'g' 開始的指令,g*,"類似於 ""*"",但不使用 ""<"" 和 "">""。" 523 | tw,'g' 開始的指令,g<,顯示上次的指令輸出。 524 | tw,'g' 開始的指令,g?,Rot13 編碼操作符。 525 | tw,'g' 開始的指令,g??,Rot13 編碼該行。 526 | tw,'g' 開始的指令,g],:tselect 到游標所在的標籤上。 527 | tw,'g' 開始的指令,g^,'wrap' 關閉時轉到該行最左側畫面上可見的非空白字元 'wrap' 開啟時轉到該畫面行最左側的非空白字元。 528 | tw,'g' 開始的指令,g$,'wrap' 關閉時轉到該行最右側畫面上可見的字元 'wrap' 開啟時轉到該畫面行最右側的字元。 529 | tw,'g' 開始的指令,g0,'wrap' 關閉時轉到該行最左側畫面上可見的字元'wrap' 開啟時轉到該畫面行最左側的字元。 530 | tw,'g' 開始的指令,g8,顯示游標所在的 UTF-8 字元的十六進制字節碼。 531 | tw,'g' 開始的指令,ga,印出游標所在處的字元的 ascii 值。 532 | tw,'g' 開始的指令,g CTRL-],|:tjump| 到游標所在的標籤上。 533 | tw,'g' 開始的指令,g CTRL-A,只有在編譯時加入了 MEM_PROFILE 時才有定義:轉存記憶體內容。 534 | tw,'g' 開始的指令,g CTRL-G,顯示當前游標位置。 535 | tw,'g' 開始的指令,g CTRL-H,啟動選擇列塊模式。 536 | tw,'g' 開始的指令,gd,轉到當前函數裡當前游標所在的單字的定義。 537 | tw,'g' 開始的指令,gD,轉到當前檔案的游標所在單字的定義。 538 | tw,'g' 開始的指令,g,"等同於 ""gj""。" 539 | tw,'g' 開始的指令,ge,反向轉到前一個單字的結尾處。 540 | tw,'g' 開始的指令,gE,反向轉移到上一個 word 的結尾處。 541 | tw,'g' 開始的指令,g,"等同於 ""g$""。" 542 | tw,'g' 開始的指令,gf,開始編輯當前游標所在的名字對應的檔案。 543 | tw,'g' 開始的指令,gF,開始編輯游標所在的檔名並跳轉到檔名後的行號上。 544 | tw,'g' 開始的指令,g?g?,Rot13 編碼該行。 545 | tw,'g' 開始的指令,gg,游標移動到第 N 行,預設是第一行。 546 | tw,'g' 開始的指令,gh,開始選擇模式。 547 | tw,'g' 開始的指令,gH,啟動選擇行模式。 548 | tw,'g' 開始的指令,g,"等同於 ""g0""。" 549 | tw,'g' 開始的指令,gi,"類似於 ""i"",但先移動到 |'^| 位置標記。" 550 | tw,'g' 開始的指令,gI,"類似於 ""I"",但總是從第一列開始。" 551 | tw,'g' 開始的指令,gj,"類似於 ""j"",但 'wrap' 開啟時往下 N 個畫面行。" 552 | tw,'g' 開始的指令,gJ,連接行,不插入空格。 553 | tw,'g' 開始的指令,gk,"類似於 ""k"",但 'wrap' 開啟時往上 N 個畫面行。" 554 | tw,'g' 開始的指令,g,等同於 。 555 | tw,'g' 開始的指令,gm,轉到當前行正中間的那個字元。 556 | tw,'g' 開始的指令,g'{mark},類似於 |'|,但不變更跳轉表。 557 | tw,'g' 開始的指令,g`{mark},類似於 |`|,但不改表跳轉表。 558 | tw,'g' 開始的指令,g,等同於 。 559 | tw,'g' 開始的指令,g@{motion},調用 'operatorfunc'。 560 | tw,'g' 開始的指令,g~{motion},變更 Nmove text 的大小寫。 561 | tw,'g' 開始的指令,go,游標移動到緩衝區的第 N 個字節。 562 | tw,'g' 開始的指令,gq{motion},排版 Nmove text。 563 | tw,'g' 開始的指令,gR,進入虛擬替換模式。 564 | tw,'g' 開始的指令,gr{char},虛擬替換 N 個字元為 {char}。 565 | tw,'g' 開始的指令,g,等同於 。 566 | tw,'g' 開始的指令,gs,睡眠 N 秒 (預設 1)。 567 | tw,'g' 開始的指令,gu{motion},使得 Nmove text 全部小寫。 568 | tw,'g' 開始的指令,gU{motion},使得 Nmove text 全部大寫。 569 | tw,'g' 開始的指令,g,"等同於 ""gk""。" 570 | tw,'g' 開始的指令,gv,重新選擇上次的可視區域。 571 | tw,'g' 開始的指令,gV,在執行選擇模式下的映射或者選單時,不要重複選擇過去的可視區域。 572 | tw,'g' 開始的指令,gw{motion},排版 Nmove text 並保持游標位置。 573 | tw,'g' 開始的指令,gx,執行游標下的檔名對應的應用程式 (僅限於 |netrw| 外掛程式)。 574 | tw,'g' 開始的指令,"[""x]gp",在游標後面放置 text [從暫存器 x] N 次,游標留在後面。 575 | tw,'g' 開始的指令,"[""x]gP",在游標籤放置 text [從暫存器 x] N 次,游標留在插入 text 之後。 576 | tw,submode,CTRL-X CTRL-],補齊標籤。 577 | tw,submode,CTRL-X CTRL-D,補齊定義過的標識符號。 578 | tw,submode,CTRL-X CTRL-E,上捲。 579 | tw,submode,CTRL-X CTRL-F,補齊檔案名稱。 580 | tw,submode,CTRL-X CTRL-I,補齊標識符號。 581 | tw,submode,CTRL-X CTRL-K,從字典補齊標識符號。 582 | tw,submode,CTRL-X CTRL-L,補齊完整的行。 583 | tw,submode,CTRL-X CTRL-N,下一個補齊。 584 | tw,submode,CTRL-X CTRL-O,全能 (omni) 補齊。 585 | tw,submode,CTRL-X CTRL-P,上一個補齊。 586 | tw,submode,CTRL-X CTRL-S,拼寫建議。 587 | tw,submode,CTRL-X CTRL-T,從同義詞詞典補齊標識符號。 588 | tw,submode,CTRL-X CTRL-U,用 'completefunc' 補齊。 589 | tw,submode,CTRL-X CTRL-V,如同 : 命令列那樣補齊。 590 | tw,submode,CTRL-X CTRL-Y,向下捲動。 591 | tw,submode,CTRL-X s,拼寫建議。 592 | tw,Text objects,"a""",雙引號字元串。 593 | tw,Text objects,a',單引號字元串。 594 | tw,Text objects,a(,等同於 ab。 595 | tw,Text objects,a),等同於 ab。 596 | tw,Text objects,a<,"""一個 <> 塊"" 從 '<' 到符合的 '>'。" 597 | tw,Text objects,a>,等同於 a<。 598 | tw,Text objects,a[,"""一個 [] 塊"" 從 '[' 到符合的 ']'。" 599 | tw,Text objects,a],等同於 a[。 600 | tw,Text objects,a`,反引號字元串。 601 | tw,Text objects,a{,等同於 aB。 602 | tw,Text objects,a},等同於 aB。 603 | tw,Text objects,ab,"""一個塊"" 從 ""[("" 到 ""])"" (帶上括號)。" 604 | tw,Text objects,aB,"""一個大塊"" 從 ""[{"" 到 ""]}"" (帶上括號)。" 605 | tw,Text objects,ap,"""一個段落"" (帶上空白)。" 606 | tw,Text objects,as,"""一個句子"" (帶上空白)。" 607 | tw,Text objects,at,"""一個標籤塊"" (帶上空白)。" 608 | tw,Text objects,aw,"""一個單字"" (帶上空白)。" 609 | tw,Text objects,aW,"""一個字串"" (帶上空白)。" 610 | tw,Text objects,"i""",雙引號字元串,不帶引號。 611 | tw,Text objects,i',單引號字元串,不帶引號。 612 | tw,Text objects,i(,等同於 ib。 613 | tw,Text objects,i),等同於 ib。 614 | tw,Text objects,i<,"""內含 <> 塊"" 從 '<' 到符合的 '>'。" 615 | tw,Text objects,i>,等同於 i<。 616 | tw,Text objects,i[,"""內含 [] 塊"" 從 '[' 到符合的 ']'。" 617 | tw,Text objects,i],等同於 i[。 618 | tw,Text objects,i`,反引號字元串,不帶反引號。 619 | tw,Text objects,i{,等同於 iB。 620 | tw,Text objects,i},等同於 iB。 621 | tw,Text objects,ib,"""內含塊"" 從 ""[("" 到 ""])""。" 622 | tw,Text objects,iB,"""內含大塊"" 從 ""[{"" 到 ""]}""。" 623 | tw,Text objects,ip,"""內含段落""。" 624 | tw,Text objects,is,"""內含句子""。" 625 | tw,Text objects,it,"""內含標籤塊""。" 626 | tw,Text objects,iw,"""內含單字""。" 627 | tw,Text objects,iW,"""內含字串""。" 628 | tw,'z' 開始的指令,z+,"游標移動到第 N 行 (預設為視窗之後的第一行),其它同 ""z""。" 629 | tw,'z' 開始的指令,z-,重繪,游標移動到視窗末行的第一個非空白字元。 630 | tw,'z' 開始的指令,z.,重繪,游標移動到視窗的中間行的第一個非空白字元。 631 | tw,'z' 開始的指令,z=,取得拼字建議 (需先啟用 spell)。 632 | tw,'z' 開始的指令,z^,"游標移動到第 N 行 (預設為視窗之前的一行),其它同 ""z-""。" 633 | tw,'z' 開始的指令,za,開啟關閉的摺疊,或關閉開啟的摺疊。 634 | tw,'z' 開始的指令,zA,遞迴開啟一個關閉的摺疊或關閉一個開啟的摺疊。 635 | tw,'z' 開始的指令,zb,重繪,游標在視窗底行。 636 | tw,'z' 開始的指令,zc,關閉摺疊。 637 | tw,'z' 開始的指令,zC,遞迴關閉摺疊。 638 | tw,'z' 開始的指令,z,重繪,游標移動到視窗的頂行的第一個非空白字元。 639 | tw,'z' 開始的指令,zd,刪除摺疊。 640 | tw,'z' 開始的指令,zD,遞迴刪除摺疊。 641 | tw,'z' 開始的指令,ze,'wrap' 關閉時,水平滾動使得游標定位到畫面的尾部 (最右側)。 642 | tw,'z' 開始的指令,zE,除去所有摺疊。 643 | tw,'z' 開始的指令,zF,為 N 行建立摺疊。 644 | tw,'z' 開始的指令,zf{motion},為 Nmove text 建立摺疊。 645 | tw,'z' 開始的指令,zg,把單字標記為拼寫正確 (good)。 646 | tw,'z' 開始的指令,zG,把單字標記為拼寫正確 (good)。 647 | tw,'z' 開始的指令,zh,'wrap' 關閉時,水平右捲畫面 N 個字元。 648 | tw,'z' 開始的指令,z{height},重繪,使得視窗高度為 {height} 行。 649 | tw,'z' 開始的指令,zi,切換 'foldenable'。 650 | tw,'z' 開始的指令,zj,移動到下一個摺疊的開始處。 651 | tw,'z' 開始的指令,zk,移動到前一個摺疊的結束處。 652 | tw,'z' 開始的指令,zl,'wrap' 關閉時,水平左捲畫面 N 個字元。 653 | tw,'z' 開始的指令,z,"等同於 ""zh""。" 654 | tw,'z' 開始的指令,zm,從 'foldlevel' 減 1。。 655 | tw,'z' 開始的指令,zM,設定 'foldlevel' 為零。 656 | tw,'z' 開始的指令,zn,復位 'foldenable',所有的摺疊被開啟。。 657 | tw,'z' 開始的指令,zN,置位 'foldenable'。 658 | tw,'z' 開始的指令,zo,開啟摺疊。 659 | tw,'z' 開始的指令,zO,遞迴開啟摺疊。 660 | tw,'z' 開始的指令,zr,給 'foldlevel' 加 1。 661 | tw,'z' 開始的指令,zR,設定 'foldlevel' 為最大摺疊級別。 662 | tw,'z' 開始的指令,z,"等同於 ""zl""。" 663 | tw,'z' 開始的指令,zs,'wrap' 關閉時,水平滾動使得游標定位到畫面的起始處 (最左側)。 664 | tw,'z' 開始的指令,zt,重繪,游標移動到視窗的頂部。 665 | tw,'z' 開始的指令,zv,開啟足夠的摺疊,使得該行可見。 666 | tw,'z' 開始的指令,zw,把單字標記為拼字錯誤 (wrong)。 667 | tw,'z' 開始的指令,zW,把單字標記為拼字錯誤 (wrong)。 668 | tw,'z' 開始的指令,zx,"重新應用 'foldlevel' 然後執行 ""zv""。" 669 | tw,'z' 開始的指令,zX,重新應用 'foldlevel'。 670 | tw,'z' 開始的指令,zz,重繪,游標移動到視窗的中間行。 671 | tw,一般模式,#,反向搜尋第 N 次出現的游標所在的標識符號。 672 | tw,一般模式,%,尋找本行下一個括號 ({}/[]),並轉到其符合的括號上,或者轉到符合的註釋配對上,或者轉到符合的預處理指令上。。 673 | tw,一般模式,&,重複上次 :s。 674 | tw,一般模式,'',游標移動到最近一次跳轉之前所在行的第一個字元上。 675 | tw,一般模式,'(,游標移動到該句的首部所在行的第一個字元上。 676 | tw,一般模式,'),游標移動到該句的尾部所在行的第一個字元上。 677 | tw,一般模式,'<,游標移動到該緩衝區高亮 (highlight) 區開始/曾經開始的行的第一個字元上。 678 | tw,一般模式,'>,游標移動到該緩衝區高亮 (highlight) 區結束/曾經結束的行的第一個字元上。 679 | tw,一般模式,'[,到上次改變或者抽出的文字的第一個字元。 680 | tw,一般模式,'],到上次改變或者抽出文字的最後一個字元。 681 | tw,一般模式,'{,游標移動到該段的首部所在行的第一個字元上。 682 | tw,一般模式,'},游標移動到該段的尾部所在行的第一個字元上。 683 | tw,一般模式,(,游標回退 N 個句子。 684 | tw,一般模式,),游標前進 N 個句子。 685 | tw,一般模式,*,正向搜尋第 N 次出現的游標所在的標識符號。 686 | tw,一般模式,+,等同於 。 687 | tw,一般模式,",",反方向重複最近的 f、t、F 或 T N 次。 688 | tw,一般模式,-,游標移動到上方 N 行的第一個字元上。 689 | tw,一般模式,.,重複最近的變更,其計數被 N 取代。 690 | tw,一般模式,:,開始進入 Ex 指令。 691 | tw,一般模式,;,重複最近的 f、t、F 或 T N 次。 692 | tw,一般模式,<<,左移 N 行一個 'shiftwidth'。 693 | tw,一般模式,==,"通過 ""indent"" 過濾 N 行。" 694 | tw,一般模式,>>,右移 N 行一個 'shiftwidth'。 695 | tw,一般模式,@:,"重複上次的 "":"" 指令 N 次。" 696 | tw,一般模式,@@,重複上次的 @{a-z} N 次。 697 | tw,一般模式,^,將游標移動到本行的第一個字元上。 698 | tw,一般模式,_,游標移動到下方第 N - 1 行的第一個字元上。 699 | tw,一般模式,`(,游標移動該句的開始處。 700 | tw,一般模式,`),游標移動該句的結束處。 701 | tw,一般模式,`<,游標移動高亮 (highlight) 區域的開始處。 702 | tw,一般模式,`>,游標移動高亮 (highlight) 區域的結束處。 703 | tw,一般模式,`[,到上次改變或者抽出的文字的第一個字元。 704 | tw,一般模式,`],到上次改變或者抽出文字的最後一個字元。 705 | tw,一般模式,``,游標移動最近一次跳轉的位置。 706 | tw,一般模式,`{,游標移動到該段的開始處。 707 | tw,一般模式,`},游標移動到該段的結束處。 708 | tw,一般模式,{,游標反向移動 N 個段落。 709 | tw,一般模式,|,游標移到第 N 列。 710 | tw,一般模式,},游標正向移動 N 個段落。 711 | tw,一般模式,~,'tildeop' 關閉時: 切換游標所在處開始的 N 個字元的大小寫,並右移游標 N 個字元。 712 | tw,一般模式,$,游標移動到往下第 N 行的行尾之後。 713 | tw,一般模式,0,將游標移動到本行的第一個字元上。 714 | tw,一般模式,"1,2,3,4,5,6,7,8,9",附加於指令前,給出計數。 715 | tw,一般模式,a,在游標處附加 text N 次。 716 | tw,一般模式,A,在行尾附加 text N 次。 717 | tw,一般模式,@{a-z},執行 {a-z} 暫存器的內容 N 次。 718 | tw,一般模式,"""{a-zA-Z0-9.%#:-""}","指定下次刪除、抽出或放置使用的暫存器{a-zA-Z0-9.%#:-""} (大寫用於添加)({.%#:} 只能用於放置)。" 719 | tw,一般模式,'{a-zA-Z0-9},游標移動到位置標記 {a-zA-Z0-9} 所在行的第一個字元上。 720 | tw,一般模式,`{a-zA-Z0-9},游標移動到位置標記 {a-zA-Z0-9}。 721 | tw,一般模式,b,游標反向移動 N 個單字。 722 | tw,一般模式,B,游標反向移動 N 個 word (字串)。 723 | tw,一般模式,,"等同於 ""h""。" 724 | tw,一般模式,,"等同於 ""G""。" 725 | tw,一般模式,[{char},方括號指令 (見下 |[|)。 726 | tw,一般模式,]{char},方括號指令 (見下 |]|)。 727 | tw,一般模式,,"等同於 ""gg""。" 728 | tw,一般模式,,"等同於 ""b""。" 729 | tw,一般模式,,""":ta"" 到滑鼠點擊所在的單字上。" 730 | tw,一般模式,{count}%,轉到檔案百分之 N 的位置上。 731 | tw,一般模式,{count}:,開始進入 Ex 指令,給出從該行開始到下方 N-1 行為止的行範圍。 732 | tw,一般模式,{count},刪除 {count} 最後的一位數字。 733 | tw,一般模式,/,正向搜尋最近一次搜尋使用的 {pattern}。 734 | tw,一般模式,,游標移到 N 行下面的第一個字完。 735 | tw,一般模式,?,反向搜尋最近一次搜尋使用的 {pattern}。 736 | tw,一般模式,,"等同於 ""w""。" 737 | tw,一般模式,,"等同於 ""CTRL-T""。" 738 | tw,一般模式,CTRL-],:ta 到游標所在的標識符號。 739 | tw,一般模式,CTRL-^,"編輯第 N 個備用檔 (等同於 "":e #N"")。" 740 | tw,一般模式,CTRL-A,增加當前游標上的數值或者字母 [count]。 741 | tw,一般模式,CTRL- a - z,保留作外掛程式用。 742 | tw,一般模式,CTRL-B,反向 (Back) 滾動 N 個畫面。 743 | tw,一般模式,CTRL-C,終止當前的 (搜尋) 指令。 744 | tw,一般模式,CTRL- CTRL-G,進入 'insertmode' 指定的模式。 745 | tw,一般模式,CTRL- CTRL-N,進入一般模式 (Normal) 模式 (空動作)。 746 | tw,一般模式,CTRL-D,向下 (Down) 滾動 N 行 (預設: 半個畫面)。 747 | tw,一般模式,CTRL-E,向上捲動 N 行 (附加 (Extra) N 行)。 748 | tw,一般模式,CTRL-F,向前 (Forward) 滾動 N 個畫面。 749 | tw,一般模式,CTRL-G,顯示當前的檔名、檔案狀態 (唯讀、已修改 ...) 和游標位置。 750 | tw,一般模式,CTRL-H,"等同於 ""h""。" 751 | tw,一般模式,CTRL-I,等同於 。 752 | tw,一般模式,CTRL-J,"等同於 ""j""。" 753 | tw,一般模式,CTRL-L,重繪畫面。 754 | tw,一般模式,CTRL-M,等同於 。 755 | tw,一般模式,CTRL-N,"等同於 ""j""。" 756 | tw,一般模式,CTRL-O,跳轉到跳轉表裡第 N 個較舊的項目。 757 | tw,一般模式,CTRL-P,"等同於 ""k""。" 758 | tw,一般模式,CTRL-Q,(用於終端控制流程)。 759 | tw,一般模式,CTRL-R,重做 'u' 還原的變更。 760 | tw,一般模式,CTRL-S,(用於終端控制流程)。 761 | tw,一般模式,CTRL-T,跳轉到標籤清單的第 N 個較舊的標籤 (Tag)。 762 | tw,一般模式,CTRL-U,上捲 (Upwards) N 行 (預設: 半個畫面)。 763 | tw,一般模式,CTRL-V,開始面向列塊的可視 (Visual) 模式。 764 | tw,一般模式,CTRL-W {char},視窗指令,見 |CTRL-W|。 765 | tw,一般模式,CTRL-X,減少當前游標上的數值或者字母 [count]。 766 | tw,一般模式,CTRL-Y,向下捲動 N 行。 767 | tw,一般模式,CTRL-Z,暫停程式 (或者啟動新的 shell)。 768 | tw,一般模式,do,"等同於 "":diffget""。" 769 | tw,一般模式,,"等同於 ""j""。" 770 | tw,一般模式,dp,"等同於 "":diffput""。" 771 | tw,一般模式,e,將游標正向移動到第 N 個 word 的結尾處。 772 | tw,一般模式,E,將游標正向移動到第 N 個 word 的結尾處。 773 | tw,一般模式,,"等同於 ""$""。" 774 | tw,一般模式,,等同於 。 775 | tw,一般模式,f{char},游標右移到第 N 次出現的 {char} 上。 776 | tw,一般模式,F{char},游標左移到第 N 次出現的 {char} 上。 777 | tw,一般模式,!!{filter},通過 {filter} 指令過濾 N 行。 778 | tw,一般模式,G,游標移動到第 N 行,預設是最後一行。 779 | tw,一般模式,g{char},外掛程式指令,見下 |g|。 780 | tw,一般模式,h,游標左移 N 個字元。 781 | tw,一般模式,H,游標移動到畫面頂部開始算的第 N 行。 782 | tw,一般模式,,開啟說明視窗。 783 | tw,一般模式,,"等同於 ""0""。" 784 | tw,一般模式,i,在游標前插入text N 次。 785 | tw,一般模式,I,在本行第一個字元之前插入 text N 次。 786 | tw,一般模式,,"等同於 ""i""。" 787 | tw,一般模式,j,游標下移 N 行。 788 | tw,一般模式,J,連接 (Join) N 行;預設為 2。 789 | tw,一般模式,k,游標上移 N 行。 790 | tw,一般模式,K,尋找游標所在的關鍵字 (Keyword),使用 'keywordprg' 的定義。 791 | tw,一般模式,l,游標右移 N 個字元。 792 | tw,一般模式,L,游標移動到畫面底部開始算的第 N 行。 793 | tw,一般模式,,"等同於 ""h""。" 794 | tw,一般模式,,移動游標到滑鼠點擊處。 795 | tw,一般模式,M,游標移動到畫面的中間一行。 796 | tw,一般模式,m{A-Za-z},在游標位置處設定位置標記 {A-Za-z}。 797 | tw,一般模式,,"等同於在滑鼠點擊處 ""gP""。" 798 | tw,一般模式,<{motion},左移 Nmove text 行一個 'shiftwidth'。 799 | tw,一般模式,={motion},"通過 ""indent"" 過濾 Nmove text 行。" 800 | tw,一般模式,>{motion},右移 Nmove text 一個 'shiftwidth'。 801 | tw,一般模式,~{motion},'tildeop' 開啟時: 切換 Nmove text 的大小寫。 802 | tw,一般模式,!{motion}{filter}2,通過 {filter} 指令過濾 Nmove 文字。 803 | tw,一般模式,n,重複最近的 '/' 或 '?' 搜尋 N 次。 804 | tw,一般模式,N,反方向重複最近的 '/' 或 '?' 搜尋 N 次。 805 | tw,一般模式,,"等同於 ""j""。" 806 | tw,一般模式,o,在游標下方開始一個新行,並插入 text,重複 N次。 807 | tw,一般模式,O,在游標上方開始一個新行,並插入 text,重複 N 次。 808 | tw,一般模式,,等同於 CTRL-F。 809 | tw,一般模式,,等同於 CTRL-B。 810 | tw,一般模式,/{pattern},正向搜尋第 N 次出現的 {pattern}。 811 | tw,一般模式,?{pattern},反向搜尋第 N 次出現的 {pattern}。 812 | tw,一般模式,q,(在記錄時) 停止記錄。 813 | tw,一般模式,q/,在命令列視窗裡編輯 / 命令列。 814 | tw,一般模式,q:,在命令列視窗裡編輯 : 命令列。 815 | tw,一般模式,q?,在命令列視窗裡編輯 ? 命令列。 816 | tw,一般模式,Q,"切換到 ""Ex"" 模式。" 817 | tw,一般模式,"q{0-9a-zA-Z""}","記錄輸入的字元到指令暫存器 {0-9a-zA-Z""}(大寫用於添加)。" 818 | tw,一般模式,R,進入替換模式: 覆蓋存在的字元,重複輸入 text N-1 次。 819 | tw,一般模式,r{char},用 {char} 替換 N 個字元。 820 | tw,一般模式,,"等同於 ""l""。" 821 | tw,一般模式,,開始可視模式,移動游標到滑鼠點擊處。 822 | tw,一般模式,,視窗向下捲動三行。 823 | tw,一般模式,,視窗向左捲動六列。 824 | tw,一般模式,,視窗向右捲動六列。 825 | tw,一般模式,,視窗向上捲動三行。 826 | tw,一般模式,,等同於 CTRL-F。 827 | tw,一般模式,,"等同於 ""b""。" 828 | tw,一般模式,,"等同於在滑鼠點擊處 ""*""。" 829 | tw,一般模式,,"等同於 ""l""。" 830 | tw,一般模式,,"等同於 ""w""。" 831 | tw,一般模式,,"等同於在滑鼠點擊處 ""#""。" 832 | tw,一般模式,,視窗向下捲動一頁。 833 | tw,一般模式,,視窗向左捲動一頁。 834 | tw,一般模式,,視窗向右捲動一頁。 835 | tw,一般模式,,視窗向上捲動一頁。 836 | tw,一般模式,,等同於 CTRL-B。 837 | tw,一般模式,,跳轉到跳轉表裡第 N 個較新的項目。 838 | tw,一般模式,t{char},游標移動到右側第 N 次出現的 {char} 之前。 839 | tw,一般模式,T{char},游標移動到左側第 N 次出現的 {char} 之前。 840 | tw,一般模式,u,還原變更。 841 | tw,一般模式,U,還原一行內最近所有的變更。 842 | tw,一般模式,,"等同於 ""u""。" 843 | tw,一般模式,,"等同於 ""k""。" 844 | tw,一般模式,v,開始面向字元的可視 (Visual) 模式。 845 | tw,一般模式,V,進入面向行的可視 (Visual) 模式。 846 | tw,一般模式,w,游標前移 N 個單字。 847 | tw,一般模式,W,游標前移 N 個 word。 848 | tw,一般模式,"[""x]C","從游標位置到行尾部分,再加上 N-1 行進行修改 [到暫存器 x];等同於 ""c$""。" 849 | tw,一般模式,"[""x]cc",刪除 N 行 [到暫存區 x] 並開始編輯。 850 | tw,一般模式,"[""x]c{motion}",刪除 Nmove text [到暫存區 x] 並開始編輯。 851 | tw,一般模式,"[""x]D","刪除位置到行尾部分,再加上 N-1 行的字元 [到暫存器 x];等同於 ""d$""。" 852 | tw,一般模式,"[""x]dd",刪除 N 行 [到暫存區 x]]。 853 | tw,一般模式,"[""x]","等同於 ""x""。" 854 | tw,一般模式,"[""x]d{motion}",刪除 Nmove text [到暫存區 x]。 855 | tw,一般模式,"[""x]p",在游標後 [從暫存器 x] 放置 text N 次。 856 | tw,一般模式,"[""x]P",在游標放置 text [到暫存器 x] N 次。 857 | tw,一般模式,"[""x]s",(替換) 刪除 N 個字元 [到暫存區 x] 並開始輸入。 858 | tw,一般模式,"[""x]S","刪除 N 行 [到暫存器 x] 並開始輸入;等同於 ""cc""。" 859 | tw,一般模式,"[""x]x",刪除游標開始的 N 個字元 [到暫存區 x]。 860 | tw,一般模式,"[""x]X",刪除游標前的 N 個字元 [到暫存器 x]。 861 | tw,一般模式,"[""x]Y","抽出 N 行 [到暫存區 x];等同於 ""yy""。" 862 | tw,一般模式,"[""x]y{motion}",抽出 Nmove text [到暫存區 x]。 863 | tw,一般模式,"[""x]yy",抽出 N 行 [到暫存區 x]。 864 | tw,一般模式,z{char},'z' 開始的指令,見下 |z|。 865 | tw,一般模式,ZQ,無論如何退出當前檔案。 866 | tw,一般模式,ZZ,如果修改過,保存當前檔案,然後離開。 867 | tw,可視模式,:,使用高亮 (highlight) 行作為範圍,開始一個命令列。 868 | tw,可視模式,<,左移高亮 (highlight) 行一個 'shiftwidth'。 869 | tw,可視模式,=,用 {equalprg} 選項指定的外部程式過濾高亮 (highlight) 行。 870 | tw,可視模式,>,右移高亮 (highlight) 行一個 'shiftwidth'。 871 | tw,可視模式,~,變更高亮 (highlight) 區域的大小寫。 872 | tw,可視模式,"a""",延伸高亮 (highlight) 區域,使包含一個雙引號字元串。 873 | tw,可視模式,a',延伸高亮 (highlight) 區域,使包含一個單引號字元串。 874 | tw,可視模式,a(,等同於 ab。 875 | tw,可視模式,a),等同於 ab。 876 | tw,可視模式,a<,延伸高亮 (highlight) 區域,使包含一個 <> 塊。 877 | tw,可視模式,a>,等同於 a<。 878 | tw,可視模式,a[,延伸高亮 (highlight) 區域,使包含一個 [] 塊。 879 | tw,可視模式,a],等同於 a[。 880 | tw,可視模式,a`,延伸高亮 (highlight) 區域,使包含一個反引號字元串。 881 | tw,可視模式,a{,等同於 aB。 882 | tw,可視模式,a},等同於 aB。 883 | tw,可視模式,A,列塊模式下: 在高亮 (highlight) 區域的所有行後附加相同的 text。 884 | tw,可視模式,ab,延伸高亮 (highlight) 區域,使包含一個 () 塊。 885 | tw,可視模式,aB,延伸高亮 (highlight) 區域,使包含一個 {} 塊。 886 | tw,可視模式,ap,延伸高亮 (highlight) 區域,使包含一個段落。 887 | tw,可視模式,as,延伸高亮 (highlight) 區域,使包含一個句子。 888 | tw,可視模式,at,延伸高亮 (highlight) 區域,使包含一個標籤塊。 889 | tw,可視模式,aw,"延伸高亮 (highlight) 區域,使包含 ""一個單字""。" 890 | tw,可視模式,aW,"延伸高亮 (highlight) 區域,使包含 ""一個 word""。" 891 | tw,可視模式,,選擇模式: 刪除高亮 (highlight) 區域。 892 | tw,可視模式,c,刪除高亮 (highlight) 區域,並開始插入。 893 | tw,可視模式,C,刪除高亮 (highlight) 行,並開始插入。 894 | tw,可視模式,CTRL-],跳轉到高亮 (highlight) 的標籤上。 895 | tw,可視模式,CTRL-C,結束可視模式。 896 | tw,可視模式,CTRL- CTRL-G,轉到 'insertmode' 指定的模式。 897 | tw,可視模式,CTRL- CTRL-N,結束可視模式。。 898 | tw,可視模式,CTRL-G,在可視模式和選擇模式間切換。 899 | tw,可視模式,CTRL-H,等同於 。 900 | tw,可視模式,CTRL-O,從選擇模式切換到可視模式,只限於下個指令。 901 | tw,可視模式,CTRL-V,使得可視模式面向列塊,或者退出可視模式。 902 | tw,可視模式,d,刪除高亮 (highlight) 區域。 903 | tw,可視模式,D,刪除高亮 (highlight) 行。 904 | tw,可視模式,,結束可視模式。 905 | tw,可視模式,!{filter},通過外部指令 {filter} 過濾高亮 (highlight) 行。 906 | tw,可視模式,gJ,連接高亮 (highlight) 行,不插入空格。 907 | tw,可視模式,gq,排版高亮 (highlight) 行。 908 | tw,可視模式,gv,交換現在和以前的高亮 (highlight) 區域。 909 | tw,可視模式,"i""",延伸高亮 (highlight) 區域,使包含一個雙引號字元串 (但不含引號)。 910 | tw,可視模式,i',延伸高亮 (highlight) 區域,使包含一個單引號字元串 (但不含引號)。 911 | tw,可視模式,i(,等同於 ib。 912 | tw,可視模式,i),等同於 ib。 913 | tw,可視模式,i<,延伸高亮 (highlight) 區域,使包含內含 <> 塊。 914 | tw,可視模式,i>,等同於 i<。 915 | tw,可視模式,i[,延伸高亮 (highlight) 區域,使包含內含 [] 塊。 916 | tw,可視模式,i],等同於 i[。 917 | tw,可視模式,i`,延伸高亮 (highlight) 區域,使包含一個反引號字元串 (但不含反引號)。 918 | tw,可視模式,i{,等同於 iB。 919 | tw,可視模式,i},等同於 iB。 920 | tw,可視模式,I,列塊模式: 在所有高亮 (highlight) 行之前插入相同的 text。 921 | tw,可視模式,ib,延伸高亮 (highlight) 區域,使包含內含 () 塊。 922 | tw,可視模式,iB,延伸高亮 (highlight) 區域,使包含內含 {} 塊。 923 | tw,可視模式,ip,延伸高亮 (highlight) 區域,使包含內含段落。 924 | tw,可視模式,is,延伸高亮 (highlight) 區域,使包含內含句子。 925 | tw,可視模式,it,延伸高亮 (highlight) 區域,使包含內含標籤塊。 926 | tw,可視模式,iw,"延伸高亮 (highlight) 區域,使包含 ""內含單字""。" 927 | tw,可視模式,iW,"延伸高亮 (highlight) 區域,使包含 ""內含 word""。" 928 | tw,可視模式,J,連接高亮 (highlight) 行。 929 | tw,可視模式,K,在高亮 (highlight) 區域上運行 'keywordprg'。 930 | tw,可視模式,o,移動游標到區域的另一側。 931 | tw,可視模式,O,水平移動到區域的另外一側。 932 | tw,可視模式,Q,不啟動 Ex 模式。 933 | tw,可視模式,r,刪除高亮 (highlight) 區域,並開始插入。 934 | tw,可視模式,R,刪除高亮 (highlight) 行並開始插入。 935 | tw,可視模式,s,刪除高亮 (highlight) 區域,並開始插入。 936 | tw,可視模式,S,刪除高亮 (highlight) 行並開始插入。 937 | tw,可視模式,u,使得高亮 (highlight) 區域全變小寫。 938 | tw,可視模式,U,使得高亮 (highlight) 區域全變大寫。 939 | tw,可視模式,v,使用可視模式,或者退出可視模式。 940 | tw,可視模式,V,使得可視區域面向行,或者退出可視模式。 941 | tw,可視模式,x,刪除高亮 (highlight) 區域。 942 | tw,可視模式,X,刪除高亮 (highlight) 區域。 943 | tw,可視模式,y,抽出高亮 (highlight) 區域。 944 | tw,可視模式,Y,抽出高亮 (highlight) 行。 945 | tw,命令列編輯,,刪除游標前面的字元。 946 | tw,命令列編輯,{char1} {char2},'digraph' 開啟時,輸入二合字母。 947 | tw,命令列編輯,,游標左移一個單字。 948 | tw,命令列編輯,,執行輸入的指令。 949 | tw,命令列編輯,,游標右移一個單字。 950 | tw,命令列編輯,CTRL-[,等同於 。 951 | tw,命令列編輯,CTRL-],啟用縮寫。 952 | tw,命令列編輯,CTRL-^,切換 |:lmap| 映射的使用。 953 | tw,命令列編輯,CTRL-_,'allowrevins' 開啟時: 變更語言 (希伯來,波斯)。 954 | tw,命令列編輯,CTRL-A,使用游標前面的模式進行補齊,並插入所有符合的指令。 955 | tw,命令列編輯,CTRL- a - d,保留給外掛程式用。 956 | tw,命令列編輯,CTRL-B,游標移動到命令列開始的地方。 957 | tw,命令列編輯,CTRL-C,等同於 。 958 | tw,命令列編輯,CTRL- CTRL-G,轉到 'insertmode' 指定的模式,放棄命令列。 959 | tw,命令列編輯,CTRL- CTRL-N,轉到一般模式,放棄命令列。 960 | tw,命令列編輯,CTRL-D,列出游標前面模式的所有補齊。 961 | tw,命令列編輯,CTRL-E,游標移動到命令列結束的地方。 962 | tw,命令列編輯,CTRL- e {expr},以 {expr} 的結果替換命令列。 963 | tw,命令列編輯,CTRL-F,'cedit' 的預設值: 開啟命令列視窗;否則無作用。 964 | tw,命令列編輯,CTRL- f - z,保留給外掛程式用。 965 | tw,命令列編輯,CTRL-H,等同於 。 966 | tw,命令列編輯,CTRL-I,等同於 。 967 | tw,命令列編輯,CTRL-J,等同於 。 968 | tw,命令列編輯,CTRL-K {char1} {char2},輸入二合字母。 969 | tw,命令列編輯,CTRL-L,補齊游標前的模式,並插入最長的公共子串。 970 | tw,命令列編輯,CTRL-M,等同於 。 971 | tw,命令列編輯,CTRL-N,使用 'wildchar' 並有多個符合: 轉到下一個符合,不然: 等同於 。 972 | tw,命令列編輯,CTRL-O,不同。 973 | tw,命令列編輯,CTRL-P,使用 'wildchar' 並有多個符合: 轉到上一個符合,不然: 等同於 。 974 | tw,命令列編輯,CTRL-Q,等同於 CTRL-V,除非用於終端控制流。 975 | tw,命令列編輯,"CTRL-R {0-9a-z""%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}",插入暫存器的內容或特殊對象到游標所在的地方,如同直接輸入那樣。 976 | tw,命令列編輯,"CTRL-R CTRL-R {0-9a-z""%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}",按本義插入暫存器的內容或特殊對象到游標所在的地方。 977 | tw,命令列編輯,CTRL-S,(用於終端控制流)。 978 | tw,命令列編輯,CTRL-U,刪除所有字元。 979 | tw,命令列編輯,CTRL-V,按本義插入下一個非數字字元,或者插入其後三位數字所代表的單個字節。 980 | tw,命令列編輯,CTRL-W,刪除游標前面的單字。 981 | tw,命令列編輯,CTRL-Y,複製 (抽出) 無模式的選擇。 982 | tw,命令列編輯,,刪除游標所在的字元。 983 | tw,命令列編輯,,從歷史中調入符合游標前模式的後一個命令列。 984 | tw,命令列編輯,,游標移動到命令列結束的地方。 985 | tw,命令列編輯,,放棄命令列,不執行。 986 | tw,命令列編輯,,游標移動到命令列開始的地方。 987 | tw,命令列編輯,,切換插入/替換模式。 988 | tw,命令列編輯,,游標左移。 989 | tw,命令列編輯,,游標移動到滑鼠點擊的地方。 990 | tw,命令列編輯,,等同於 。 991 | tw,命令列編輯,,等同於 。 992 | tw,命令列編輯,,等同於 。 993 | tw,命令列編輯,,游標右移。 994 | tw,命令列編輯,,從歷史中調入後一個命令列。 995 | tw,命令列編輯,,游標左移一個單字。 996 | tw,命令列編輯,,游標右移一個單字。 997 | tw,命令列編輯,,等同於 CTRL-P。 998 | tw,命令列編輯,,從歷史中調入前一個命令列。 999 | tw,命令列編輯,,如果 'wildchar' 是 : 補齊游標前面的模式。 1000 | tw,命令列編輯,,從歷史中調入符合游標前模式的前一個命令列。 1001 | tw,命令列編輯,'wildchar',補齊游標前面的模式 (預設: )。 1002 | tw,插入模式,0 CTRL-D,刪除該行的所有縮排。 1003 | tw,插入模式,,刪除游標前的字元。 1004 | tw,插入模式,,游標移到檔案結尾。 1005 | tw,插入模式,{char1}{char2},輸入二合字母 (只有開啟了 'digraph' 選項才有效)。 1006 | tw,插入模式,,游標移到檔案開頭。 1007 | tw,插入模式,,游標左移一個單字。 1008 | tw,插入模式,,開始新的一行。 1009 | tw,插入模式,,游標右移一個單字。 1010 | tw,插入模式,CTRL-@,插入最近插入的文字並停止插入。 1011 | tw,插入模式,CTRL-[,等同於 。 1012 | tw,插入模式,CTRL-],切換縮寫。 1013 | tw,插入模式,CTRL-^,切換 |:lmap| 映射的使用。 1014 | tw,插入模式,CTRL-_,'allowrevins' 開啟時: 變更語言 (希伯來語,波斯語等) {僅當編譯時加入|+rightleft| 特性才有效}。 1015 | tw,插入模式,CTRL-A,插入最近插入的文字。 1016 | tw,插入模式,CTRL- a - z,保留給外掛程式用。 1017 | tw,插入模式,CTRL-C,退出插入模式,不檢查縮寫,除非置位了'insertmode'。 1018 | tw,插入模式,CTRL- CTRL-G,進入 'insertmode' 指定的模式。 1019 | tw,插入模式,CTRL- CTRL-N,進入一般模式。 1020 | tw,插入模式,^ CTRL-D,刪除該行的所有縮排,在下一行恢復刪除的縮排。 1021 | tw,插入模式,CTRL-D,在該行刪除一個 shiftwidth 的縮排。 1022 | tw,插入模式,CTRL-E,插入游標下方的字元。 1023 | tw,插入模式,CTRL-G CTRL-J,將游標往下移動一行 (等同於在編輯模式中按下 鍵)。 1024 | tw,插入模式,CTRL-G CTRL-K,將游標往上移動一行 (等同於在編輯模式中按下 鍵)。 1025 | tw,插入模式,CTRL-G ,將游標往下移動一行 (等同於在編輯模式中按下 鍵)。 1026 | tw,插入模式,CTRL-G j,將游標往下移動一行 (等同於在編輯模式中按下 鍵)。 1027 | tw,插入模式,CTRL-G k,將游標往上移動一行 (等同於在編輯模式中按下 鍵)。 1028 | tw,插入模式,CTRL-G u,開始新的不可還原的編輯。 1029 | tw,插入模式,CTRL-G ,將游標往上移動一行 (等同於在編輯模式中按下 鍵)。 1030 | tw,插入模式,CTRL-H,等同於 。 1031 | tw,插入模式,CTRL-I,等同於 1032 | tw,插入模式,CTRL-J,等同於 。 1033 | tw,插入模式,CTRL-K {char1} {char2},輸入二合字母。 1034 | tw,插入模式,CTRL-L,'insertmode' 開啟時: 離開插入模式。 1035 | tw,插入模式,CTRL-M,等同於 。 1036 | tw,插入模式,CTRL-N,尋找符合游標前面的下一個關鍵字。 1037 | tw,插入模式,CTRL-O,執行單個指令然後回到插入模式。 1038 | tw,插入模式,CTRL-P,尋找符合游標前面的上一個關鍵字。 1039 | tw,插入模式,CTRL-Q,等同於 CTRL-V,除非用於終端控制流程。 1040 | tw,插入模式,"CTRL-R {0-9a-z""%#*:=}",插入暫存器內容。 1041 | tw,插入模式,"CTRL-R CTRL-O {0-9a-z""%#*:=}",按本義插入暫存器內容,而且不自動縮排。 1042 | tw,插入模式,"CTRL-R CTRL-P {0-9a-z""%#*:=}",按本義插入暫存器內容,而且修正縮排。 1043 | tw,插入模式,"CTRL-R CTRL-R {0-9a-z""%#*:=}",按本義插入暫存器內容。 1044 | tw,插入模式,CTRL-S,(用於終端控制流程)。 1045 | tw,插入模式,CTRL-T,在該行插入一個 shiftwidth 的縮排。 1046 | tw,插入模式,CTRL-U,刪除該行的所有輸入字元。 1047 | tw,插入模式,CTRL-V {char},按本義插入下一個非數字字元。 1048 | tw,插入模式,CTRL-V {number},插入三位十進制數字代表的單個字節。 1049 | tw,插入模式,CTRL-W,刪除游標前的單字。 1050 | tw,插入模式,CTRL-X {mode},進入 CTRL-X 子模式,見 |i_CTRL-X_index|。 1051 | tw,插入模式,CTRL-Y,插入游標上方的字元。 1052 | tw,插入模式,CTRL-Z,'insertmode' 開啟時: 暫停 Vim。 1053 | tw,插入模式,,刪除游標所在的字元。 1054 | tw,插入模式,,游標下移一行。 1055 | tw,插入模式,,游標移到行尾後面。 1056 | tw,插入模式,,結束插入模式 (除非開啟了 'insertmode')。 1057 | tw,插入模式,,等同於 。 1058 | tw,插入模式,,停止插入模式顯示說明視窗。 1059 | tw,插入模式,,游標移到行首。 1060 | tw,插入模式,,切換插入/替換模式。 1061 | tw,插入模式,,游標左移一個字元。 1062 | tw,插入模式,,游標移到滑鼠點擊處。 1063 | tw,插入模式,,等同於 。 1064 | tw,插入模式,,下一個畫面。 1065 | tw,插入模式,,上一個畫面。 1066 | tw,插入模式,,游標右移一個字元。 1067 | tw,插入模式,,視窗向下捲動三行。 1068 | tw,插入模式,,視窗向左捲動六列。 1069 | tw,插入模式,,視窗向右捲動六列。 1070 | tw,插入模式,,視窗向上捲動三行。 1071 | tw,插入模式,,等同於 。 1072 | tw,插入模式,,游標左移一個單字。 1073 | tw,插入模式,,游標右移一個單字。 1074 | tw,插入模式,,視窗向下捲動一頁。 1075 | tw,插入模式,,視窗向左捲動一頁。 1076 | tw,插入模式,,視窗向右捲動一頁。 1077 | tw,插入模式,,視窗向上捲動一頁。 1078 | tw,插入模式,,等同於 。 1079 | tw,插入模式,,插入 字元。 1080 | tw,插入模式,,游標上移一行。 1081 | tw,方括號指令,[#,游標移動到前面第 N 個未符合的 #if、#else 或者 #ifdef。 1082 | tw,方括號指令,[',游標移動到前面的小寫位置標記,定位在它所在行的第一個非空白字元上。 1083 | tw,方括號指令,[(,游標移動到前面第 N 個未符合的 '('。 1084 | tw,方括號指令,[*,"等同於 ""[/""。" 1085 | tw,方括號指令,[/,游標移動到前面第 N 個 C 註釋的開始處。 1086 | tw,方括號指令,[[,游標後退 N 個小節。 1087 | tw,方括號指令,[],游標後退 N 個 SECTION。 1088 | tw,方括號指令,[`,游標移動到前一個小寫位置標記。 1089 | tw,方括號指令,[{,游標後退 N 個未符合的 '{'。 1090 | tw,方括號指令,]#,游標移動到後面第 N 個未符合的 #endif、#else。 1091 | tw,方括號指令,]',游標移動到後面的小寫位置標記,定位在它所在行的第一個非空白字元上。 1092 | tw,方括號指令,](,游標移動到後面第 N 個未符合的 ')'。 1093 | tw,方括號指令,]*,"等同於 ""]/""。" 1094 | tw,方括號指令,]/,游標移動到後面第 N 個 C 註釋的結尾處。 1095 | tw,方括號指令,]],游標前進 N 個小節。 1096 | tw,方括號指令,]`,游標移動到後一個小寫位置標記。 1097 | tw,方括號指令,]{,游標前進 N 個未符合的 '}'。 1098 | tw,方括號指令,[c,游標後退 N 個更改開始的地方。 1099 | tw,方括號指令,]c,游標前進 N 個更改開始的地方。 1100 | tw,方括號指令,[ CTRL-D,跳轉到第一個在當前檔案和它包含的標頭檔裡符合游標所在的單字的 #define,從當前檔案的頭部開始。 1101 | tw,方括號指令,] CTRL-D,跳轉到第一個在當前檔案和它包含的標頭檔裡符合游標所在的單字的 #define,從游標位置開始。 1102 | tw,方括號指令,[ CTRL-I,跳轉到第一個在當前檔案和它包含的標頭檔裡符合游標所在單字的位置,從當前檔案頭部開始。 1103 | tw,方括號指令,] CTRL-I,跳轉到第一個在當前檔案和它包含的標頭檔裡符合游標所在單字的位置,從游標位置開始。 1104 | tw,方括號指令,[d,顯示第一個在當前檔案和它包含的標頭檔裡符合游標所在的單字的 #define,從當前檔案的頭部開始。 1105 | tw,方括號指令,]d,顯示第一個在當前檔案和它包含的標頭檔裡符合游標所在的單字的 #define,從游標位置開始。 1106 | tw,方括號指令,[D,列出在當前檔案和它包含的標頭檔裡符合游標所在的單字的所有定義,從當前檔案的頭部開始。 1107 | tw,方括號指令,]D,列出在當前檔案和它包含的標頭檔裡符合游標所在的單字的所有定義,從游標位置開始。 1108 | tw,方括號指令,[f,"等同於 ""gf""。" 1109 | tw,方括號指令,]f,"等同於 ""gf""。" 1110 | tw,方括號指令,[i,顯示第一個在當前檔案和它包含的標頭檔裡符合游標所在單字的位置,從當前檔案的頭部開始。 1111 | tw,方括號指令,]i,顯示第一個在當前檔案和它包含的標頭檔裡符合游標所在單字的位置,從游標位置開始。 1112 | tw,方括號指令,[I,列出在當前檔案和它包含的標頭檔裡符合游標所在單字的所有位置,從當前檔案的頭部開始。 1113 | tw,方括號指令,]I,列出在當前檔案和它包含的標頭檔裡符合游標所在單字的所有位置,從游標位置開始。 1114 | tw,方括號指令,[m,游標後退 N 個成員函數的開始。 1115 | tw,方括號指令,]m,游標前進 N 個成員函數的結尾。 1116 | tw,方括號指令,[,"等同於 ""[p""。" 1117 | tw,方括號指令,],"等同於 ""]p""。" 1118 | tw,方括號指令,[p,"類似於 ""P"",但調整該行的縮排。" 1119 | tw,方括號指令,]p,"類似於 ""p"",但調整該行的縮排。" 1120 | tw,方括號指令,[P,"等同於 ""[p""。" 1121 | tw,方括號指令,]P,"等同於 ""[p""。" 1122 | tw,方括號指令,[s,移動到前一個拼字錯誤的單字。 1123 | tw,方括號指令,]s,移動到後一個拼字錯誤的單字。 1124 | tw,方括號指令,[z,移動到開啟的摺疊的開始。 1125 | tw,方括號指令,]z,移動到開啟的摺疊的結尾處。 1126 | tw,視窗指令,CTRL-W +,增加前視窗高度 N 行。 1127 | tw,視窗指令,CTRL-W -,減少當前視窗高度 N 行。 1128 | tw,視窗指令,CTRL-W <,減少當前視窗寬度 N 列。 1129 | tw,視窗指令,CTRL-W =,使得所有視窗同寬同高。 1130 | tw,視窗指令,CTRL-W >,增加當前視窗寬度 N 列。 1131 | tw,視窗指令,CTRL-W ],分割視窗並跳轉到游標所在的標籤上。 1132 | tw,視窗指令,CTRL-W ^,分割視窗並編輯備用檔 N。 1133 | tw,視窗指令,CTRL-W _,設定當前視窗高度為 N (預設: 儘量大)。 1134 | tw,視窗指令,CTRL-W |,設定視窗寬度為 N 列。 1135 | tw,視窗指令,CTRL-W },在預覽視窗裡顯示游標所在的標籤。 1136 | tw,視窗指令,CTRL-W b,跳轉到底部的視窗。 1137 | tw,視窗指令,CTRL-W c,關閉當前視窗 (類似於 |:close|)。 1138 | tw,視窗指令,CTRL-W CTRL-],"等同於 ""CTRL-W ]""。" 1139 | tw,視窗指令,CTRL-W CTRL-^,"等同於 ""CTRL-W ^""。" 1140 | tw,視窗指令,CTRL-W CTRL-_,"等同於 ""CTRL-W _""。" 1141 | tw,視窗指令,CTRL-W CTRL-B,"等同於 ""CTRL-W b""。" 1142 | tw,視窗指令,CTRL-W CTRL-C,"等同於 ""CTRL-W c""。" 1143 | tw,視窗指令,CTRL-W CTRL-D,"等同於 ""CTRL-W d""。" 1144 | tw,視窗指令,CTRL-W CTRL-F,"等同於 ""CTRL-W f""。" 1145 | tw,視窗指令,CTRL-W CTRL-G,"等同於 ""CTRL-W g ..""。" 1146 | tw,視窗指令,CTRL-W CTRL-H,"等同於 ""CTRL-W h""。" 1147 | tw,視窗指令,CTRL-W CTRL-I,"等同於 ""CTRL-W i""。" 1148 | tw,視窗指令,CTRL-W CTRL-J,"等同於 ""CTRL-W j""。" 1149 | tw,視窗指令,CTRL-W CTRL-K,"等同於 ""CTRL-W k""。" 1150 | tw,視窗指令,CTRL-W CTRL-L,"等同於 ""CTRL-W l""。" 1151 | tw,視窗指令,CTRL-W CTRL-N,"等同於 ""CTRL-W n""。" 1152 | tw,視窗指令,CTRL-W CTRL-O,"等同於 ""CTRL-W o""。" 1153 | tw,視窗指令,CTRL-W CTRL-P,"等同於 ""CTRL-W p""。" 1154 | tw,視窗指令,CTRL-W CTRL-Q,"等同於 ""CTRL-W q""。" 1155 | tw,視窗指令,CTRL-W CTRL-R,"等同於 ""CTRL-W r""。" 1156 | tw,視窗指令,CTRL-W CTRL-S,"等同於 ""CTRL-W s""。" 1157 | tw,視窗指令,CTRL-W CTRL-T,"等同於 ""CTRL-W t""。" 1158 | tw,視窗指令,CTRL-W CTRL-V,"等同於 ""CTRL-W v""。" 1159 | tw,視窗指令,CTRL-W CTRL-W,"等同於 ""CTRL-W w""。" 1160 | tw,視窗指令,CTRL-W CTRL-X,"等同於 ""CTRL-W x""。" 1161 | tw,視窗指令,CTRL-W CTRL-Z,"等同於 ""CTRL-W z""。" 1162 | tw,視窗指令,CTRL-W d,分割視窗並跳轉到游標所在的定義上。 1163 | tw,視窗指令,CTRL-W ,"等同於 ""CTRL-W j""。" 1164 | tw,視窗指令,CTRL-W f,分割視窗並跳轉到游標所在的檔名上。 1165 | tw,視窗指令,CTRL-W F,分割視窗並編輯游標所在的檔名,然後跳轉到檔名後給出的行號上。 1166 | tw,視窗指令,CTRL-W g ],分割視窗並在游標所在的標籤上執行 |:tselect|。 1167 | tw,視窗指令,CTRL-W g },在游標所在的標籤上執行 |:ptjump|。 1168 | tw,視窗指令,CTRL-W g CTRL-],分割視窗並在游標所在的標籤上執行 |:tjump|。 1169 | tw,視窗指令,CTRL-W g f,在新分頁裡編輯游標所在的檔名。 1170 | tw,視窗指令,CTRL-W g F,在新分頁裡編輯游標所在的檔名然後跳轉到檔名後給出的行號上。 1171 | tw,視窗指令,CTRL-W h,跳轉到左面第 N 個的視窗 (在首個視窗上停止)。 1172 | tw,視窗指令,CTRL-W H,移動當前視窗到最左邊。 1173 | tw,視窗指令,CTRL-W i,分割視窗並跳轉到游標所在的標識符號的聲明上。 1174 | tw,視窗指令,CTRL-W j,跳轉到下面第 N 個的視窗 (在最後視窗上停止)。 1175 | tw,視窗指令,CTRL-W J,移動當前視窗到最底部。 1176 | tw,視窗指令,CTRL-W k,跳轉到上面第 N 個的視窗 (在首個視窗上停止)。 1177 | tw,視窗指令,CTRL-W K,移動當前視窗到最頂部。 1178 | tw,視窗指令,CTRL-W l,跳轉到右面第 N 個的視窗 (在最後視窗上停止)。 1179 | tw,視窗指令,CTRL-W L,移動當前視窗到最右邊。 1180 | tw,視窗指令,CTRL-W ,"等同於 ""CTRL-W h""。" 1181 | tw,視窗指令,CTRL-W n,開啟新視窗,N 行高。 1182 | tw,視窗指令,CTRL-W o,關閉除了當前視窗以外的所有視窗 (類似於|:only|)。 1183 | tw,視窗指令,CTRL-W p,轉到前面一個 (最近訪問的) 視窗。 1184 | tw,視窗指令,CTRL-W P,跳轉到預覽視窗。 1185 | tw,視窗指令,CTRL-W q,退出當前視窗 (類似於 |:quit|)。 1186 | tw,視窗指令,CTRL-W r,向下旋轉視窗 N 次。 1187 | tw,視窗指令,CTRL-W R,向上旋轉視窗 N 次。 1188 | tw,視窗指令,CTRL-W ,"等同於 ""CTRL-W l""。" 1189 | tw,視窗指令,CTRL-W s,分割當前視窗為兩部分,新的視窗 N 行高。 1190 | tw,視窗指令,CTRL-W S,"等同於 ""CTRL-W s""。" 1191 | tw,視窗指令,CTRL-W t,跳轉到頂部視窗。 1192 | tw,視窗指令,CTRL-W T,移動當前視窗到新標籤頁。 1193 | tw,視窗指令,CTRL-W ,"等同於 ""CTRL-W k""。" 1194 | tw,視窗指令,CTRL-W v,垂直分割當前視窗,新的視窗 N 列寬。 1195 | tw,視窗指令,CTRL-W w,轉到後面第 N 個視窗 (迴繞)。 1196 | tw,視窗指令,CTRL-W W,跳轉到前面第 N 個視窗 (迴繞)。 1197 | tw,視窗指令,CTRL-W x,交換當前和第 N 個視窗 (預設: 下一個視窗)。 1198 | tw,視窗指令,CTRL-W z,關閉預覽視窗。 1199 | -------------------------------------------------------------------------------- /lib/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/lib/assets/.gitkeep -------------------------------------------------------------------------------- /lib/tasks/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/lib/tasks/.gitkeep -------------------------------------------------------------------------------- /lib/tasks/cron.rake: -------------------------------------------------------------------------------- 1 | desc "Random tweets" 2 | task :cron, "lang", "skip_interval", "tweets_per_exec", "ex_show_interval" 3 | task :cron => :environment do |x, args| 4 | VimCommand.update_tweets(args.lang, args.skip_interval, args.tweets_per_exec, args.ex_show_interval) 5 | end 6 | -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/log/.gitkeep -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The page you were looking for doesn't exist (404) 5 | 17 | 18 | 19 | 20 | 21 |
22 |

The page you were looking for doesn't exist.

23 |

You may have mistyped the address or the page may have moved.

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 17 | 18 | 19 | 20 | 21 |
22 |

The change you wanted was rejected.

23 |

Maybe you tried to change something you didn't have access to.

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | We're sorry, but something went wrong (500) 5 | 17 | 18 | 19 | 20 | 21 |
22 |

We're sorry, but something went wrong.

23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-Agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /script/format.rb: -------------------------------------------------------------------------------- 1 | # Ad-hoc script to transform Vim documentation 2 | puts File.readlines("en2.txt").map {|line| 3 | #Please keep these lines. -------- 4 | #if /^ {30,}/ =~ line 5 | # last_line += " " + line.strip 6 | #else 7 | # lines << last_line 8 | # last_line = line.chomp 9 | #end 10 | #--------------------------------- 11 | line.sub(/^ +|\|[^|]+\| +/, "") 12 | } 13 | -------------------------------------------------------------------------------- /script/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. 3 | 4 | APP_PATH = File.expand_path('../../config/application', __FILE__) 5 | require File.expand_path('../../config/boot', __FILE__) 6 | require 'rails/commands' 7 | -------------------------------------------------------------------------------- /spec/features/web_pages_spec.rb: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | require 'spec_helper' 3 | 4 | feature 'web pages' do 5 | scenario "access pages" do 6 | visit root_path 7 | expect(page).to have_content "左に N 桁移動" 8 | 9 | within ".navbar" do 10 | click_link "English" 11 | end 12 | expect(page).to have_content "insert previously inserted text and stop insert" 13 | 14 | within ".navbar" do 15 | click_link "Chinese(cn)" 16 | end 17 | expect(page).to have_content "插入最近插入的文本并停止插入" 18 | 19 | within ".navbar" do 20 | click_link "Chinese(tw)" 21 | end 22 | expect(page).to have_content "插入最近插入的文字並停止插入。" 23 | 24 | within ".navbar" do 25 | click_link "Japanese" 26 | end 27 | expect(page).to have_content "左に N 桁移動" 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /spec/models/vim_command_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe VimCommand do 4 | describe "::twitter_client" do 5 | let(:env_hash) { 6 | { 7 | "twitter_consumer_key_jp" => "123", 8 | "twitter_consumer_secret_jp" => "456", 9 | "twitter_oauth_token_jp" => "789", 10 | "twitter_oauth_token_secret_jp" => "abc", 11 | } 12 | } 13 | let(:twitter_client) { VimCommand.send(:twitter_client, "jp") } 14 | before do 15 | allow(Settings).to receive(:[]) do |key| 16 | env_hash[key] 17 | end 18 | end 19 | specify { expect(twitter_client.instance_variable_get(:@consumer_key)).to eq '123' } 20 | specify { expect(twitter_client.instance_variable_get(:@consumer_secret)).to eq '456' } 21 | specify { expect(twitter_client.instance_variable_get(:@access_token)).to eq '789' } 22 | specify { expect(twitter_client.instance_variable_get(:@access_token_secret)).to eq 'abc' } 23 | it "resnponds to :update" do 24 | expect(twitter_client.respond_to? :update).to be_truthy 25 | end 26 | end 27 | 28 | describe "::update_tweets" do 29 | it "updates tweet" do 30 | twitter = double(:twitter) 31 | expect(twitter).to receive(:update).once 32 | allow(VimCommand).to receive(:twitter_client).with("jp").and_return(twitter) 33 | VimCommand.update_tweets("jp", "1", "1", "1") 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # This file is copied to spec/ when you run 'rails generate rspec:install' 2 | ENV["RAILS_ENV"] ||= 'test' 3 | require File.expand_path("../../config/environment", __FILE__) 4 | require 'rspec/rails' 5 | 6 | # Requires supporting ruby files with custom matchers and macros, etc, 7 | # in spec/support/ and its subdirectories. 8 | Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 9 | 10 | RSpec.configure do |config| 11 | config.use_active_record = false 12 | 13 | config.infer_spec_type_from_file_location! 14 | 15 | # If you're not using ActiveRecord, or you'd prefer not to run each of your 16 | # examples within a transaction, remove the following line or assign false 17 | # instead of true. 18 | config.use_transactional_fixtures = true 19 | 20 | # If true, the base class of anonymous controllers will be inferred 21 | # automatically. This will be the default behavior in future versions of 22 | # rspec-rails. 23 | config.infer_base_class_for_anonymous_controllers = false 24 | 25 | # Run specs in random order to surface order dependencies. If you find an 26 | # order dependency and want to debug it, you can fix the order by providing 27 | # the seed, which is printed after each run. 28 | # --seed 1234 29 | config.order = "random" 30 | end 31 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/vendor/assets/javascripts/.gitkeep -------------------------------------------------------------------------------- /vendor/assets/stylesheets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/vendor/assets/stylesheets/.gitkeep -------------------------------------------------------------------------------- /vendor/plugins/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunichiIto/be_vimmer/075786724c2744da80559dabc7dc0bf77472fd93/vendor/plugins/.gitkeep --------------------------------------------------------------------------------