vim - 在 Vim 中使用 `filter()` 后如何保留索引和值
问题描述
我将用于getline(1, '$')
获取文档中的所有行列表。他们filter()
通过某种表达。但我还需要保留索引(行号)以供参考。我怎么能这样做?
let lines = getline(1, '$')
filter(lines, 'EXPRESSION')
结果应该是一个列表或任何我可以参考的索引:
[[1, LINE1], [4, LINE4],... [n, LINEn]]
解决方案
您可以使用v:key
来获取列表的索引map()
,然后v:key + 1
将行号如下。
let lines = map(getline(1, '$'), '[v:key + 1, v:val]')
call filter(lines, 'v:val[1] == "EXPRESSION"')
推荐阅读
- python - 带有数组和 OR 运算符的 Django 过滤器数据库
- liferay - 从大豆模板调用 ResourceURL
- react-native - 为什么我在本机反应中看到这个 Eslint 错误
- python - Python + MySQL:搜索功能返回所有条目
- css - CSS:聚合共享 ID 的复合选择器
- html - 是否有用于 html 自定义元素的打字稿界面?
- http - POST 方法 (HTTP)。批量操作
- android - 错误:没有找到适合 show(androidx.fragment.app.FragmentManager,String) 的方法
- reactjs - 账户在[payable]方法中收到一定数额的余额后重定向页面?
- c++ - 为什么即使我“使用命名空间 std;”,我也可以使用 std 命名空间中的名称?