水平移动

回忆上节课内容

  • 根据扩展名我们可以设置某些特定类型文件的配置
  • 相关文件类型的设置放在相应的文件夹里
  • 文件类型缩进文件夹

    • /usr/share/vim/vim81/indent/
  • 文件类型语法高亮文件夹

    • /usr/share/vim/vim81/syntax/
  • 文件类型插件文件夹

    • 系统通用文件夹

      • /usr/share/vim/vim81/ftplugin/java.vim
      • /usr/share/vim/vim81/ftplugin/java_xxx.vim
      • /usr/share/vim/vim81/ftplugin/java/xxx.vim
    • 用户专用插件文件夹

      • ~/.vim/ftplugin/java.vim
      • ~/.vim/ftplugin/java_def.vim
      • ~/.vim/ftplugin/java/header.vim
  • 在 文件夹~/.vim/ftplugin中 的 html.vim 的设置

    • 只针对 html
    • 包括文件的缩进、配色、语法高亮、行号、状态栏等
  • :filetype indent on 文件类型缩进生效
  • :filetype syntax on 文件类型语法高亮生效
  • :filetype plugin on 文件类型插件生效

素材文件

  • 首先我们打开一个绕口令

    • git clone http://github.com/overmind1980/vimtutorial.git
    • vi -u NONE raokouling.txt
    • 打开绕口令
    • 需要单行的长度超过 80 个字符
  • 设置不换行

    • :set nowrap
  • 设置状态条

    • :set statesline=%f-[%l,%c]
    • :set laststatus=2
  • 把模式设置为非兼容

    • :set nocompatible

横向滚动

  • 一路l 到屏幕的尽头
  • 到 [1,80] 时候再按下 l
  • 整个屏幕发生横向滚动
  • 然后光标移动到屏幕中心位置
  • 光标坐标显示为 [1,81]
  • 如果要回来的话也需要移动到左边缘
  • 然后再按 h️
  • 整个屏幕滚动回来了

  • 反复横跳

横滚幅度

  • 横滚的幅度可以通过 sidescroll 来控制

    • 默认 0 是横向屏幕 80 字符的一半 40 字符
    • 如果我设置为 10 的话
    • 在最右边缘再向右的话,屏幕位置滚动 10 个字符
    • 从 [1,80] 到 [1,81] 的时候发生
  • :h sidescroll

  • 我们如果把 sidescroll 变成 1,屏幕横滚就会很柔和
  • 还是设置回10吧
  • 反复横跳

横滚留位

  • 每次我们的横滚都是在屏幕边缘发生的
  • 能否到达边缘之前就能看见那边有什么?
  • :h sidescrolloff

    • 默认是 0,到边缘才滚动
    • 如果我们设置为 20
    • 到 [1,60] 的时候,距离有边缘有 20
    • 这个时候 l️整个屏就会向右滚动幅度
    • 也就是 sidescroll 所对应的 10

  • sidescrolloff 设置成 99,光标在横向总在中心位置

横滚屏快键

  • 其实横向滚动我们用的比较少
  • 但在一屏中滚动比较常见

屏内跳转

  • 可以参照全屏跳转
  • 前面加个 g

    • g0 就是跳到屏幕第一个字符
    • g^ 就是本屏幕内第一个非空字符
    • gm 跳到屏幕中间
    • gM 跳到整个文本中间
    • g$ 跳到屏幕末尾

自动换行

  • 如果一行太长了我们可以让他 :set wrap 自动换行
  • :h wrap 可以查看帮助手册
  • :set nowrap 可以取消自动换行

向上一行

  • 我们一般用 j、k 上下移动
  • 但是如果自动换行之后,这上下就不只是一行了
  • 先把行号显示出来 :set nu
  • 我们可以通过 g j、g k 来自动换行的一行内上下移动

换行字符

  • 我在行头句尾的时候
  • 如果我想按方向键 h、l 换行

    • 结果是有效的
  • 如果我用 BackSpace

    • 结果是有效的
  • 但是有的机器上,却无效
  • 为什么呢?
  • 这是一个属性option

    • whichwrap
  • 先看看这个东西现在的值

    • :set whichwrap?

  • 把他设置回默认的值

    • :set whichwrap&
    • & 表示设置为默认值
    • 然后再观察现状

  • b,s 是什么意思呢

选项细节

  • :h 'whichwrap'

  • 默认只有两个

    • b 是 <BackSpace> 退格
    • s 是 <Space> 空格
  • 理论上h、l 不好使
  • vi oeasy.java

    • 重新用vi打开
    • h、l 好使
    • 那他是在那里设置了 h、l 呢?

查找根源

vim ~/.vimrc
  • /whichwrap

总结

  • 我们这次了解了横向滚动的相关信息

    • 横滚幅度 - sidescroll
    • 横滚留位 - sidescrolloff
    • 自动换行 - wrap
  • g j、g k 可以逐行上下移动
  • 可以控制切换行的控制键 whichwrap
  • 这就是横向移动的内容
  • 不过程序中一般一行不会超过80个字符
  • 纵向移动更为普遍
  • 纵向移动有什么好玩的吗?
  • 下次再说

oeasy教您玩转vim - 28 - 水平移动的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. RocketMQ消息过滤机制源码详解

    #RocketMQ提供了2种消息过滤的方式: TAG 过滤 SQL92 过滤 SQL过滤默认是没有打开的,如果想要支持,必须在broker的配置文件中设置:enablePropertyFilter = ...

  2. Sublime快速在当前目录下新建文件(advanceNewfile插件)

    1.ctrl+shift+p,输入pci,选择第一个,回车 2.输入 advanceNewfile 安装 3.ctrl+alt+n 新建文件自动保存在当前目录下

  3. windows下载安装ipopt求解器 可用于pyomo调用

    方案一:采用官方编译的应用程序 官方对windows下有已经编译好的应用程序,只需要下载下来,并将ipopt的应用程序所在文件夹路径添加到系统全局环境变量就可以了.这样在利用pyomo或者其他建模工具 ...

  4. .NET 中使用 OpenTelemetry Traces 追踪应用程序

    上一次我们讲了 OpenTelemetry Logs.今天继续来说说 OpenTelemetry Traces. 在今天的微服务和云原生环境中,理解和监控系统的行为变得越来越重要.在当下我们实现一个功 ...

  5. jquery的节点的替换 节点的克隆

      // 节点的替换 / 标签的替换         // 1 , $('已有标签').replaceWith(替换的新的标签)         // 替换所有         // 将已有的span ...

  6. kettle从入门到精通 第五十六课 ETL之kettle Microsoft Excel Output

    1.9.4 版本的kettle中有两个Excel输出,Excel输出和Microsoft Excel输出.前者只支持xls格式,后者支持xls和xlsx两种格式,本节课主要讲解步骤Microsoft ...

  7. Codeforces Round 923 (Div. 3) 比赛记录

    Codeforces Round 923 (Div. 3) 这是我第二次参加 cf阴间场. 10 minutes ago: 这次报名人数超过 4 万,一开始网站就崩溃了,比赛延迟了 10 分钟..开局 ...

  8. C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验

    C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验 自签名证书 HTTPS TLS . 使用.NET 4.5 新加的属性 HttpWebRequest.ServerCerti ...

  9. The requested operation cannot be completed because the connection has been broken

    具体报错 The requested operation cannot be completed because the connection has been broken. -- xxxForyy ...

  10. work13

    任务要求: 1.建立一个企鹅类,企鹅有名字(可以自由添加属性)2.把多个企鹅的信息添加到集合中3.查看企鹅的数量4.遍历输出所有企鹅的信息5.删除集合中索引值是2的企鹅的元素 任务描述: 定义一个老鼠 ...