问题描述
我正在寻找一种在某些条件下映射 NERDTree-
如果当前窗口为空,则 NERDTree-
我是vimscript的初学者,所以很难找到如何去做。
我试图创建一个如下所示的函数以及要在“NERDTreeCustomArgsOpen”上调用的函数,但无法实现。
" Couldn't make 'IsBufferModifiable' function
" and mapping 'MyNERDTree_CR' to 'NERDTreeCustomOpenArgs'
function! IsBufferModifiable(numBuffer)
function! IsBufferEmpty(numBuffer)
return bufname(a:numBuffer) == ''
endfunction
function! IsModifiableBufferEmpty()
let emptyModifiableBuffers = filter(range(1,bufnr('$')),'IsBufferModifiable(v:val) && IsBufferEmpty(v:val)')
if len(emptyModifiableBuffers) == 0
return 1
else
return 0
endfunction
function! MyNERDTree_CR()
if IsModifiableBufferEmpty()
call Feedkeys('o')
else
call Feedkeys('t')
endfunction
" Not sure it works or not
let NERDTreeCustomOpenArgs = {'file':{'where':'MyNERDTree_CR','reuse':'all','keepopen':1,'stay':1}}
有什么办法可以让它们工作吗?
解决方法
检查给定缓冲区是否可修改通常是通过检查缓冲区本地 import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:random_string/random_string.dart';
import 'package:tennis_event_app/services/crud.dart';
class CreateBlog extends StatefulWidget {
@override
_CreateBlogState createState() => _CreateBlogState();
}
class _CreateBlogState extends State<CreateBlog> {
late String pass,authorName,title,desc;
File selectedImage;
final picker = ImagePicker();
bool _isLoading = false;
CrudMethods crudMethods = new CrudMethods();
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
selectedImage = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
选项的值来完成的:
:help 'modifiable'
见function! IsBufferModifiable(numBuffer)
return getbufvar(a:numBuffer,'&modifiable')
endfunction
。