iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 16
0
自我挑戰組

30 天不間斷-資工隨筆大雜燴系列 第 16

[Day 16] 你會用 Vim 嗎? Vim 沒有那麼難!-實例篇

前言

今天大家可以試試看以下的問題,把以下設定檔放到自己的本機並打開 vim 來確認自己是否瞭解昨天的內容。

設定檔

  1##
  2 # You should look at the following URL's in order to grasp a solid understanding
  3 # of Nginx configuration files in order to fully unleash the power of Nginx.
  4 # https://www.nginx.com/resources/wiki/start/
  5 # https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
  6 # https://wiki.debian.org/Nginx/DirectoryStructure
  7 #
  8 # In most cases, administrators will remove this file from sites-enabled/ and
  9 # leave it as reference inside of sites-available where it will continue to be
 10 # updated by the nginx packaging team.
 11 #
 12 # This file will automatically load configuration files provided by other
 13 # applications, such as Drupal or Wordpress. These applications will be made
 14 # available underneath a path with that package name, such as /drupal8.
 15 #
 16 # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
 17 ##
 18 
 19 # Default server configuration
 20 #
 21 server {
 22         listen 80 default_server;
 23         listen [::]:80 default_server;
 24 
 25         # SSL configuration
 26         #
 27         # listen 443 ssl default_server;
 28         # listen [::]:443 ssl default_server;
 29         #
 30         # Note: You should disable gzip for SSL traffic.
 31         # See: https://bugs.debian.org/773332
 32         #
 33         # Read up on ssl_ciphers to ensure a secure configuration.
 34         # See: https://bugs.debian.org/765782
 35         #
 36         # Self signed certs generated by the ssl-cert package
 37         # Don't use them in a production server!
 38         #
 39         # include snippets/snakeoil.conf;
 40 
 41         root /var/www/html;
 42 
 43         # Add index.php to the list if you are using PHP
 44         index index.html index.htm index.nginx-debian.html;
 45 
 46         server_name _;
 47 
 48         location / {
 49                 # First attempt to serve request as file, then
 50                 # as directory, then fall back to displaying a 404.
 51                 try_files $uri $uri/ =404;
 52         }
53 
 54         # pass PHP scripts to FastCGI server
 55         #
 56         #location ~ \.php$ {
 57         #       include snippets/fastcgi-php.conf;
 58         #
 59         #       # With php-fpm (or other unix sockets):
 60         #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 61         #       # With php-cgi (or other tcp sockets):
 62         #       fastcgi_pass 127.0.0.1:9000;
 63         #}
 64 
 65         # deny access to .htaccess files, if Apache's document root
 66         # concurs with nginx's one
 67         #
 68         #location ~ /\.ht {
 69         #       deny all;
 70         #}
 71 }
 72 
 73 
 74 # Virtual Host configuration for www.example.com
 75 #
 76 # You can move that to a different file under sites-available/ and symlink that
 77 # to sites-enabled/ to enable it.
 78 #
 79 #server {
 80 #       listen 80;
 81 #       listen [::]:80;
 82 #
 83 #       server_name example.com;
 84 #
 85 #       root /var/www/example.com;
 86 #       index index.html;
 87 #
 88 #       location / {
 89 #               try_files $uri $uri/ =404;
 90 #       }
 91 #}

問題

  1. 把 1-20 列的 # 號移除
  2. 把 19 行移除
  3. 把74行的 example.com 改成 www.example.com
  4. 把 79 到 91 行的#號刪掉,並另存成一個新的檔案命名爲comment_file
  5. 還原到最初狀態
  6. 把所有包含註解的列都刪掉。

解答

  1. :1,20s/#//

  2. 19G移到第 19 列,在dd把目前的列刪掉

  3. 兩種解法:

    1. :1,$ss/www.example.com/example.com/gc
    2. 按 esc 跳到指令模式,然後輸入/example.com,這個時候游標就會跳到74列example.com的e前面,i進入編輯模式打上 www
  4. :79,91s/#//gc,確認#被刪掉之後輸入:79,91 w comment_file

  5. 一直執行u的指令直到左下角的狀態文字顯示Already at oldest change

  6. :g/#/d


上一篇
[Day 15] 你會用 Vim 嗎? Vim 沒有那麼難!-指令觀念篇
下一篇
[Day 17] 你會用 Vim 嗎? Vim 沒有那麼難!-進階指令篇
系列文
30 天不間斷-資工隨筆大雜燴30

尚未有邦友留言

立即登入留言